Updated documentation

This commit is contained in:
Kristian Lauszus 2014-06-09 17:02:31 +02:00
parent 5ad3f8a70f
commit 15d723ee04
1117 changed files with 14909 additions and 12807 deletions

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTD.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">BTD.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for BTD.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_d_8cpp__incl.png" border="0" usemap="#_b_t_d_8cpp" alt=""/></div>
<map name="_b_t_d_8cpp" id="_b_t_d_8cpp">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,83,71,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="13,161,69,189"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,79,71,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="14,152,70,177"/></map>
</div>
</div>
<p><a href="_b_t_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for BTD.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,4 +1,4 @@
<map id="BTD.cpp" name="BTD.cpp">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="12,83,71,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="13,161,69,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="12,79,71,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="14,152,70,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTD.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -148,29 +148,29 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>(); <span class="comment">// Get memory address of USB device address pool</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD ConfigureDevice&quot;</span>), 0x80);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD ConfigureDevice&quot;</span>), 0x80);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>) { <span class="comment">// Check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0); <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
@ -187,9 +187,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>) {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nOut of address space&quot;</span>), 0x80);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nOut of address space&quot;</span>), 0x80);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">bMaxPacketSize0</a>; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
@ -202,9 +202,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>(rcode);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>(rcode);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rcode != <a class="code" href="max3421e_8h.html#aa128de549704094dadb93daa8875472b">hrJERR</a>)</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(rcode != <a class="code" href="max3421e_8h.html#aa128de549704094dadb93daa8875472b">hrJERR</a>)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; rcode = <a class="code" href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229">USB_ERROR_FailGetDevDescr</a>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> rcode;</div>
@ -217,15 +217,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"></span> <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>); <span class="comment">// Get pointer to assigned address record</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>); <span class="comment">// Get pointer to assigned address record</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; delay(300); <span class="comment">// Assign new address to the device</span></div>
@ -233,25 +233,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; rcode = <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>); <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"></span> p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress); <span class="comment">// Get pointer to assigned address record</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
@ -267,7 +267,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || PID == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a>) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || PID == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a>) {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a>)</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">else</span> <span class="comment">// It must be a navigation controller</span></div>
@ -275,25 +275,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; } <span class="keywordflow">else</span> <span class="comment">// It must be a Motion controller</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0] == 0x00 &amp;&amp; <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[1] == 0x00 &amp;&amp; <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[2] == 0x00 &amp;&amp; <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[3] == 0x00 &amp;&amp; <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[4] == 0x00 &amp;&amp; <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[5] == 0x00) {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPlease plug in the dongle before trying to pair with the PS3 Controller\r\nor set the Bluetooth address in the constructor of the PS3BT class&quot;</span>), 0x80);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPlease plug in the dongle before trying to pair with the PS3 Controller\r\nor set the Bluetooth address in the constructor of the PS3BT class&quot;</span>), 0x80);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || PID == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a>)</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; setBdaddr(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>); <span class="comment">// Set internal Bluetooth address</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; setMoveBdaddr(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>); <span class="comment">// Set internal Bluetooth address</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span>(int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[i], 0x80);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0], 0x80);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[ <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a> ].epAddr, 0); <span class="comment">// Reset configuration value</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(bAddress, 0, 0); <span class="comment">// Reset address</span></div>
@ -337,42 +337,42 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Dongle Initialized&quot;</span>), 0x80);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Dongle Initialized&quot;</span>), 0x80);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(bAddress, 0, 0); <span class="comment">// Reset address</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(bAddress, 0, 0); <span class="comment">// Reset address</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;Fail:</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTD Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;}</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
@ -429,14 +429,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;#ifdef EXTRADEBUG</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">PrintEndpointDescriptor</a>(pep);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(pollInterval &lt; pep-&gt;bInterval) <span class="comment">// Set the polling interval as the largest polling interval obtained from endpoints</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span>(pollInterval &lt; pep-&gt;bInterval) <span class="comment">// Set the polling interval as the largest polling interval obtained from endpoints</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; pollInterval = pep-&gt;<a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">bInterval</a>;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>++;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0"> 346</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">BTD::PrintEndpointDescriptor</a>(<span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a>* ep_ptr) {</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEndpoint descriptor:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEndpoint descriptor:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nLength:\t\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; D_PrintHex&lt;uint8_t &gt; (ep_ptr-&gt;<a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a55263a9cc9dc17abc37226ac8a471ad0">bLength</a>, 0x80);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nType:\t\t&quot;</span>), 0x80);</div>
@ -450,7 +450,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPoll Intrv:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; D_PrintHex&lt;uint8_t &gt; (ep_ptr-&gt;<a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">bInterval</a>, 0x80);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;}</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87"> 365</a></span>&#160;uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a>() {</div>
@ -462,7 +462,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41"> 371</a></span>&#160;uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a>() {</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(!bPollEnable)</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a> &lt;= millis()) { <span class="comment">// Don&#39;t poll if shorter than polling interval</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>((<span class="keywordtype">long</span>)(millis() - <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>) &gt;= 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>) { <span class="comment">// Don&#39;t poll if shorter than polling interval</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a> = millis() + pollInterval; <span class="comment">// Set new poll time</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; HCI_task(); <span class="comment">// HCI state machine</span></div>
@ -494,22 +494,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4">EV_COMMAND_STATUS</a>:</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span>(hcibuf[2]) { <span class="comment">// Show status on serial if not OK</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Command Failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Command Failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; D_PrintHex&lt;uint8_t &gt; (hcibuf[2], 0x80);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0">EV_INQUIRY_COMPLETE</a>:</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(inquiry_counter &gt;= 5 &amp;&amp; (<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> || <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>)) {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; inquiry_counter = 0;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nCouldn&#39;t find Wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nCouldn&#39;t find HID device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
@ -521,10 +521,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b">EV_INQUIRY_RESULT</a>:</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span>(hcibuf[2]) { <span class="comment">// Check that there is more than zero responses</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNumber of responses: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNumber of responses: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(hcibuf[2], 0x80);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; hcibuf[2]; i++) {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; hcibuf[2]; i++) {</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; uint8_t offset = 8 * hcibuf[2] + 3 * i;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">for</span>(uint8_t j = 0; j &lt; 3; j++)</div>
@ -543,21 +543,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> &amp;&amp; (classOfDevice[1] &amp; 0x05) &amp;&amp; (classOfDevice[0] &amp; 0xC8)) { <span class="comment">// Check if it is a mouse, keyboard or a gamepad - see: http://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x80)</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x80)</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMouse found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x40)</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nKeyboard found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x08)</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nGamepad found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">for</span>(uint8_t j = 0; j &lt; 6; j++)</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[j] = hcibuf[j + 3 + 6 * i];</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525">hci_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba">HCI_FLAG_DEVICE_FOUND</a>);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nClass of device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; D_PrintHex&lt;uint8_t &gt; (classOfDevice[2], 0x80);</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
@ -566,7 +566,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; D_PrintHex&lt;uint8_t &gt; (classOfDevice[0], 0x80);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
@ -574,17 +574,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525">hci_set_flag</a>(<a class="code" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3">HCI_FLAG_CONNECT_EVENT</a>);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">if</span>(!hcibuf[2]) { <span class="comment">// Check if connected OK</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnection established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnection established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a> = hcibuf[3] | ((hcibuf[4] &amp; 0x0F) &lt;&lt; 8); <span class="comment">// Store the handle for the ACL connection</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a> = hcibuf[3] | ((hcibuf[4] &amp; 0x0F) &lt;&lt; 8); <span class="comment">// Store the handle for the ACL connection</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525">hci_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd">HCI_FLAG_CONNECT_COMPLETE</a>); <span class="comment">// Set connection complete flag</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnection Failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnection Failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; D_PrintHex&lt;uint8_t &gt; (hcibuf[2], 0x80);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99">EV_DISCONNECT_COMPLETE</a>:</div>
@ -614,65 +614,65 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span>((classOfDevice[1] &amp; 0x05) &amp;&amp; (classOfDevice[0] &amp; 0xC8)) { <span class="comment">// Check if it is a mouse, keyboard or a gamepad</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x80)</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x80)</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMouse is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x40)</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nKeyboard is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span>(classOfDevice[0] &amp; 0x08)</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nGamepad is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nClass of device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nClass of device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; D_PrintHex&lt;uint8_t &gt; (classOfDevice[2], 0x80);</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; D_PrintHex&lt;uint8_t &gt; (classOfDevice[1], 0x80);</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; D_PrintHex&lt;uint8_t &gt; (classOfDevice[0], 0x80);</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"></span> <a class="code" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525">hci_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043">HCI_FLAG_INCOMING_REQUEST</a>);</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525">hci_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043">HCI_FLAG_INCOMING_REQUEST</a>);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4">EV_PIN_CODE_REQUEST</a>:</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>) {</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing with wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing with wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> != NULL) {</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth pin is set too: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth pin is set too: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="message_8h.html#aa41f0e761e43cb026f1c7f04f75fa24e">NotifyStr</a>(<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>, 0x80);</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo pin was set&quot;</span>), 0x80);</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo pin was set&quot;</span>), 0x80);</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0">EV_LINK_KEY_REQUEST</a>:</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived Key Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived Key Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4">EV_AUTHENTICATION_COMPLETE</a>:</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> &amp;&amp; !<a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>) {</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing successful with Wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing successful with Wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">true</span>; <span class="comment">// Used to indicate to the Wii service, that it should connect to this device</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">true</span>; <span class="comment">// Used to indicate to the Wii service, that it should connect to this device</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a>) {</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing successful with HID device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPairing successful with HID device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">true</span>; <span class="comment">// Used to indicate to the BTHID service, that it should connect to this device</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">true</span>; <span class="comment">// Used to indicate to the BTHID service, that it should connect to this device</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="comment">/* We will just ignore the following events */</span></div>
@ -689,22 +689,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317">EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE</a>:</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span>(hcibuf[0] != 0x00) {</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnmanaged HCI Event: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; D_PrintHex&lt;uint8_t &gt; (hcibuf[0], 0x80);</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"></span> } <span class="comment">// Switch</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; } <span class="comment">// Switch</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI event error: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; }</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;}</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment">/* Poll Bluetooth and print result */</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="keywordtype">void</span> BTD::HCI_task() {</div>
@ -723,18 +723,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01">HCI_FLAG_CMD_COMPLETE</a>)) {</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; hci_counter = 0;</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Reset complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Reset complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"></span> hci_state = <a class="code" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002">HCI_CLASS_STATE</a>;</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002">HCI_CLASS_STATE</a>;</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <a class="code" href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">hci_write_class_of_device</a>();</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hci_counter &gt; hci_num_reset_loops) {</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; hci_num_reset_loops *= 10;</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span>(hci_num_reset_loops &gt; 2000)</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; hci_num_reset_loops = 2000;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo response to HCI Reset&quot;</span>), 0x80);</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo response to HCI Reset&quot;</span>), 0x80);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"></span> hci_state = <a class="code" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a">HCI_INIT_STATE</a>;</div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a">HCI_INIT_STATE</a>;</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; hci_counter = 0;</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">break</span>;</div>
@ -742,9 +742,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002">HCI_CLASS_STATE</a>:</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01">HCI_FLAG_CMD_COMPLETE</a>)) {</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrite class of device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrite class of device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"></span> hci_state = <a class="code" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f">HCI_BDADDR_STATE</a>;</div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f">HCI_BDADDR_STATE</a>;</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; }</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">break</span>;</div>
@ -752,14 +752,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f">HCI_BDADDR_STATE</a>:</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd">HCI_FLAG_READ_BDADDR</a>)) {</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nLocal Bluetooth Address: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nLocal Bluetooth Address: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">for</span>(int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[i], 0x80);</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; D_PrintHex&lt;uint8_t &gt; (my_bdaddr[0], 0x80);</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228">HCI_LOCAL_VERSION_STATE</a>;</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">break</span>;</div>
@ -777,22 +777,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1">HCI_SET_NAME_STATE</a>:</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01">HCI_FLAG_CMD_COMPLETE</a>)) {</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe name is set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe name is set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="message_8h.html#aa41f0e761e43cb026f1c7f04f75fa24e">NotifyStr</a>(<a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>, 0x80);</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"></span> hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>:</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> || <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>) { <span class="comment">// Check if it should try to connect to a Wiimote</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nStarting inquiry\r\nPress 1 &amp; 2 on the Wiimote\r\nOr press sync if you are using a Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPlease enable discovery of your device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e">HCI_INQUIRY_STATE</a>;</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf">HCI_SCANNING_STATE</a>; <span class="comment">// Don&#39;t try to connect to a Wiimote</span></div>
@ -802,7 +802,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba">HCI_FLAG_DEVICE_FOUND</a>)) {</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>(); <span class="comment">// Stop inquiry</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWiimote found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID device found&quot;</span>), 0x80);</div>
@ -811,7 +811,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWII Wii(&amp;Btd);&quot;</span>), 0x80);</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTHID hid(&amp;Btd);&quot;</span>), 0x80);</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBTHID bthid(&amp;Btd);&quot;</span>), 0x80);</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAnd then press any button on the &quot;</span>), 0x80);</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
@ -819,7 +819,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>) {</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>) {</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>(); <span class="comment">// We need to know the name to distinguish between a Wiimote and a Wii U Pro Controller</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd">HCI_REMOTE_NAME_STATE</a>;</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; } <span class="keywordflow">else</span></div>
@ -830,12 +830,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa">HCI_CONNECT_DEVICE_STATE</a>:</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01">HCI_FLAG_CMD_COMPLETE</a>)) {</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnecting to Wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnecting to HID device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d">HCI_CONNECTED_DEVICE_STATE</a>;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">break</span>;</div>
@ -844,18 +844,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3">HCI_FLAG_CONNECT_EVENT</a>)) {</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd">HCI_FLAG_CONNECT_COMPLETE</a>)) {</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>)</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnected to Wiimote&quot;</span>), 0x80);</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnected to HID device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>(); <span class="comment">// This will start the pairing with the Wiimote</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>(); <span class="comment">// This will start the pairing with the Wiimote</span></div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf">HCI_SCANNING_STATE</a>;</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nTrying to connect one more time...&quot;</span>), 0x80);</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nTrying to connect one more time...&quot;</span>), 0x80);</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(); <span class="comment">// Try to connect one more time</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(); <span class="comment">// Try to connect one more time</span></div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">break</span>;</div>
@ -863,9 +863,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf">HCI_SCANNING_STATE</a>:</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> &amp;&amp; !<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> &amp;&amp; !<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>) {</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWait For Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWait For Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a">HCI_CONNECT_IN_STATE</a>;</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div>
@ -875,9 +875,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043">HCI_FLAG_INCOMING_REQUEST</a>)) {</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nIncoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nIncoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd">HCI_REMOTE_NAME_STATE</a>;</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a">HCI_FLAG_DISCONNECT_COMPLETE</a>))</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0">HCI_DISCONNECT_STATE</a>;</div>
@ -886,25 +886,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd">HCI_REMOTE_NAME_STATE</a>:</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07">HCI_FLAG_REMOTE_NAME_COMPLETE</a>)) {</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRemote Name: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRemote Name: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; strlen(<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>); i++)</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <a class="code" href="message_8h.html#ab5d8177365493b21dbc092f6557bd508">Notifyc</a>(<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>[i], 0x80);</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Nintendo&quot;</span>, 8) == 0) {</div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span>(strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Nintendo&quot;</span>, 8) == 0) {</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWiimote is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWiimote is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Nintendo RVL-CNT-01-TR&quot;</span>, 22) == 0) {</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">if</span>(strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Nintendo RVL-CNT-01-TR&quot;</span>, 22) == 0) {</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; with Motion Plus Inside&quot;</span>), 0x80);</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; with Motion Plus Inside&quot;</span>), 0x80);</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Nintendo RVL-CNT-01-UC&quot;</span>, 22) == 0) {</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a> = <span class="keyword">false</span>;</div>
@ -913,9 +913,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">if</span>(classOfDevice[2] == 0 &amp;&amp; classOfDevice[1] == 0x25 &amp;&amp; classOfDevice[0] == 0x08 &amp;&amp; strncmp((<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>, <span class="stringliteral">&quot;Wireless Controller&quot;</span>, 19) == 0) {</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS4 controller is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS4 controller is connecting&quot;</span>), 0x80);</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="preprocessor"></span> incomingPS4 = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; incomingPS4 = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> &amp;&amp; <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>)</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa">HCI_CONNECT_DEVICE_STATE</a>;</div>
@ -929,14 +929,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0">HCI_CONNECTED_STATE</a>:</div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd">HCI_FLAG_CONNECT_COMPLETE</a>)) {</div>
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnected to Device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nConnected to Device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">for</span>(int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[i], 0x80);</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; D_PrintHex&lt;uint8_t &gt; (disc_bdaddr[0], 0x80);</div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(incomingPS4)</div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">if</span>(incomingPS4)</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">true</span>; <span class="comment">// We should always connect to the PS4 controller</span></div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="comment">// Clear these flags for a new connection</span></div>
@ -960,9 +960,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0">HCI_DISCONNECT_STATE</a>:</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a">HCI_FLAG_DISCONNECT_COMPLETE</a>)) {</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Disconnected from Device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHCI Disconnected from Device&quot;</span>), 0x80);</div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="preprocessor"></span> hci_event_flag = 0; <span class="comment">// Clear all flags</span></div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; hci_event_flag = 0; <span class="comment">// Clear all flags</span></div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="comment">// Reset all buffers</span></div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; memset(hcibuf, 0, <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>);</div>
@ -993,12 +993,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; }</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rcode != <a class="code" href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a>) {</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rcode != <a class="code" href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a>) {</div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nACL data in error: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++)</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++)</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">if</span>(btService[i])</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; btService[i]-&gt;<a class="code" href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">Run</a>();</div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;}</div>
@ -1170,9 +1170,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; hcibuf[9] = 6; <span class="comment">// Pin length is the length of the Bluetooth address</span></div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>) {</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nParing with Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nParing with Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; hcibuf[10 + i] = <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[i]; <span class="comment">// The pin is the Bluetooth dongles Bluetooth address backwards</span></div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 6; i++)</div>
@ -1296,14 +1296,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; delay(100); <span class="comment">// This small delay prevents it from overflowing if it fails</span></div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nError sending L2CAP message: 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nError sending L2CAP message: 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; D_PrintHex&lt;uint8_t &gt; (channelHigh, 0x80);</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; D_PrintHex&lt;uint8_t &gt; (channelLow, 0x80);</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; }</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;}</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div>
<div class="line"><a name="l01218"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e"> 1218</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm) {</div>
@ -1456,7 +1456,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01231">BTD.cpp:1231</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc9b6954b4bb6c19a9d25242869d5ddf"><div class="ttname"><a href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf">HCI_SCANNING_STATE</a></div><div class="ttdeci">#define HCI_SCANNING_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00054">BTD.h:54</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01218">BTD.cpp:1218</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a090ee10cc1a1c1c3bbb29a93c330d2d4"><div class="ttname"><a href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4">EV_COMMAND_STATUS</a></div><div class="ttdeci">#define EV_COMMAND_STATUS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00098">BTD.h:98</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a29c1744f72f3cd85865c8173eace5a36"><div class="ttname"><a href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36">EV_REMOTE_NAME_COMPLETE</a></div><div class="ttdeci">#define EV_REMOTE_NAME_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00085">BTD.h:85</a></div></div>
@ -1496,7 +1496,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_ad14762241e9195fc9a3b0a69ef1ab7f3"><div class="ttname"><a href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3">HCI_FLAG_CONNECT_EVENT</a></div><div class="ttdeci">#define HCI_FLAG_CONNECT_EVENT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00071">BTD.h:71</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a094e0fa9b22cade79fe64a907aad5f2a"><div class="ttname"><a href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a">HCI_FLAG_DISCONNECT_COMPLETE</a></div><div class="ttdeci">#define HCI_FLAG_DISCONNECT_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00065">BTD.h:65</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4bad48092981dffe97edb052f5ae08bd"><div class="ttname"><a href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd">HCI_REMOTE_NAME_STATE</a></div><div class="ttdeci">#define HCI_REMOTE_NAME_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00056">BTD.h:56</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a96a7af8bc5ba78235312e1084a5ee229"><div class="ttname"><a href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229">USB_ERROR_FailGetDevDescr</a></div><div class="ttdeci">#define USB_ERROR_FailGetDevDescr</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00073">UsbCore.h:73</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a96a7af8bc5ba78235312e1084a5ee229"><div class="ttname"><a href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229">USB_ERROR_FailGetDevDescr</a></div><div class="ttdeci">#define USB_ERROR_FailGetDevDescr</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00087">UsbCore.h:87</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a14087b750ea2da7f0cef4daaa7683d01"><div class="ttname"><a href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01">HCI_FLAG_CMD_COMPLETE</a></div><div class="ttdeci">#define HCI_FLAG_CMD_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00063">BTD.h:63</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
@ -1557,12 +1557,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_af6c5584636f8958689f5cd67290254e1"><div class="ttname"><a href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1">EV_INCOMING_CONNECT</a></div><div class="ttdeci">#define EV_INCOMING_CONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00082">BTD.h:82</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8bfcf6e1a0a044aba26d728fb0c6a17a"><div class="ttname"><a href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a">HCI_CONNECT_IN_STATE</a></div><div class="ttdeci">#define HCI_CONNECT_IN_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00055">BTD.h:55</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00096">controllerEnums.h:96</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a09fa39bcefd3255f8ef762034e45679e"><div class="ttname"><a href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e">HCI_INQUIRY_STATE</a></div><div class="ttdeci">#define HCI_INQUIRY_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00050">BTD.h:50</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a23fbb539d72d10a6cb12efedf7d3457c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a23fbb539d72d10a6cb12efedf7d3457c">USB_ENDPOINT_DESCRIPTOR::bEndpointAddress</a></div><div class="ttdeci">uint8_t bEndpointAddress</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00144">usb_ch9.h:144</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae0a16d1cc0142186a20379b5c68bd1e0"><div class="ttname"><a href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0">HCI_CONNECTED_STATE</a></div><div class="ttdeci">#define HCI_CONNECTED_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00057">BTD.h:57</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a335df6d48c8cac828d62196eeaff360b"><div class="ttname"><a href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b">EV_INQUIRY_RESULT</a></div><div class="ttdeci">#define EV_INQUIRY_RESULT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00080">BTD.h:80</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="class_b_t_d_html_a76e201c5b561e3a6d0405894ba5c2e41"><div class="ttname"><a href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00371">BTD.cpp:371</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00170">BTD.h:170</a></div></div>
@ -1575,7 +1576,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0e8a8ce5838e265c1732795bf8822043"><div class="ttname"><a href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043">HCI_FLAG_INCOMING_REQUEST</a></div><div class="ttdeci">#define HCI_FLAG_INCOMING_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00067">BTD.h:67</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0987119cfc40f3011a2cec69686034df"><div class="ttname"><a href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df">EV_NUM_COMPLETE_PKT</a></div><div class="ttdeci">#define EV_NUM_COMPLETE_PKT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00089">BTD.h:89</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91d92fee94e5a4cbca472bb3fd883e3e"><div class="ttname"><a href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">BTD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[BTD_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00541">BTD.h:541</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6a28bb0589fbe2da75b238d7568d894d"><div class="ttname"><a href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a></div><div class="ttdeci">#define IOGEAR_GBU521_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00029">BTD.h:29</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a8dc98310fe481357eaa86c53e49af113"><div class="ttname"><a href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">BluetoothService::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div></div>
@ -1583,7 +1584,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee41c4878894db24e7ad8cd6246595cd"><div class="ttname"><a href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a></div><div class="ttdeci">#define BTD_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00189">BTD.h:189</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00075">UsbCore.h:75</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00171">BTD.h:171</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a830b2a3bcb09c4802910e8b05531d317"><div class="ttname"><a href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317">EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE</a></div><div class="ttdeci">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00095">BTD.h:95</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a81b71e0ba648260143529b04ae84e528"><div class="ttname"><a href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528">EV_COMMAND_COMPLETE</a></div><div class="ttdeci">#define EV_COMMAND_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00097">BTD.h:97</a></div></div>
@ -1599,13 +1600,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01104">BTD.cpp:1104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3e107e9d07793ca5cfaeea8b2181d4a4"><div class="ttname"><a href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4">EV_CHANGE_CONNECTION_LINK</a></div><div class="ttdeci">#define EV_CHANGE_CONNECTION_LINK</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00087">BTD.h:87</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ab1b8db3992e0dceb2ba86f3bab1e5bca"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">USB_DEVICE_DESCRIPTOR::bNumConfigurations</a></div><div class="ttdeci">uint8_t bNumConfigurations</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00112">usb_ch9.h:112</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a57c7f989e9b561a6301a0d6f2268bfd5"><div class="ttname"><a href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5">hci_check_flag</a></div><div class="ttdeci">#define hci_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00074">BTD.h:74</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac61db50de3007a22e19e660bd7e68e69"><div class="ttname"><a href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69">EV_ROLE_CHANGED</a></div><div class="ttdeci">#define EV_ROLE_CHANGED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00088">BTD.h:88</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2c060a7be42c5c4c57990cacec0b45f5"><div class="ttname"><a href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a></div><div class="ttdeci">#define HCI_CHECK_DEVICE_SERVICE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00048">BTD.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a680692ff13cb37eb81ddbb74bc9e0383"><div class="ttname"><a href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">BluetoothService::Run</a></div><div class="ttdeci">virtual void Run()</div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00544">BTD.h:544</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01118">BTD.cpp:1118</a></div></div>
@ -1617,7 +1618,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a70047b0f624c3f0ef29f8b76b8a34938"><div class="ttname"><a href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">BTD::hci_pin_code_request_reply</a></div><div class="ttdeci">void hci_pin_code_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01068">BTD.cpp:1068</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00210">UsbCore.h:210</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aa0bf5ac66c412d3415dbb753630d0e58"><div class="ttname"><a href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58">EV_ENCRYPTION_CHANGE</a></div><div class="ttdeci">#define EV_ENCRYPTION_CHANGE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00086">BTD.h:86</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a700e625eeda4ce1b35112721acbdfd19"><div class="ttname"><a href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19">hci_clear_flag</a></div><div class="ttdeci">#define hci_clear_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00076">BTD.h:76</a></div></div>
@ -1632,7 +1633,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_aa4e852587db5ad51c6c5cfb8e9d4f002"><div class="ttname"><a href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002">HCI_CLASS_STATE</a></div><div class="ttdeci">#define HCI_CLASS_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00044">BTD.h:44</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00072">UsbCore.h:72</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00086">UsbCore.h:86</a></div></div>
<div class="ttc" id="class_b_t_d_html_af11ad71d20783d46fe42dd405d10dfda"><div class="ttname"><a href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">BTD::HCI_Command</a></div><div class="ttdeci">void HCI_Command(uint8_t *data, uint16_t nbytes)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00919">BTD.cpp:919</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@ -1640,7 +1641,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTD.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,20 +92,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">BTD.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for BTD.h:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_d_8h__incl.png" border="0" usemap="#_b_t_d_8h" alt=""/></div>
<map name="_b_t_d_8h" id="_b_t_d_8h">
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="7,83,63,111"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="7,79,63,104"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_d_8h__dep__incl.png" border="0" usemap="#_b_t_d_8hdep" alt=""/></div>
<map name="_b_t_d_8hdep" id="_b_t_d_8hdep">
<area shape="rect" id="node2" href="_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="21,83,93,111"/><area shape="rect" id="node3" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="118,83,191,111"/><area shape="rect" id="node6" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="219,83,292,111"/><area shape="rect" id="node8" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="323,83,380,111"/><area shape="rect" id="node10" href="_wii_8h.html" title="Wii.h" alt="" coords="419,83,469,111"/><area shape="rect" id="node4" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,161,91,189"/><area shape="rect" id="node5" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,161,188,189"/><area shape="rect" id="node7" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="212,161,299,189"/><area shape="rect" id="node9" href="_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="324,161,395,189"/><area shape="rect" id="node11" href="_wii_8cpp.html" title="Wii.cpp" alt="" coords="419,161,484,189"/></map>
<area shape="rect" id="node2" href="_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="21,79,95,104"/><area shape="rect" id="node3" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="119,79,191,104"/><area shape="rect" id="node6" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="220,79,293,104"/><area shape="rect" id="node8" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="324,79,381,104"/><area shape="rect" id="node10" href="_wii_8h.html" title="Wii.h" alt="" coords="419,79,470,104"/><area shape="rect" id="node4" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,152,92,177"/><area shape="rect" id="node5" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="116,152,189,177"/><area shape="rect" id="node7" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="213,152,300,177"/><area shape="rect" id="node9" href="_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="325,152,396,177"/><area shape="rect" id="node11" href="_wii_8cpp.html" title="Wii.cpp" alt="" coords="420,152,485,177"/></map>
</div>
</div>
<p><a href="_b_t_d_8h_source.html">Go to the source code of this file.</a></p>
@ -2084,7 +2084,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,12 +1,12 @@
<map id="BTD.h" name="BTD.h">
<area shape="rect" id="node2" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="21,83,93,111"/>
<area shape="rect" id="node3" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="118,83,191,111"/>
<area shape="rect" id="node6" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="219,83,292,111"/>
<area shape="rect" id="node8" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="323,83,380,111"/>
<area shape="rect" id="node10" href="$_wii_8h.html" title="Wii.h" alt="" coords="419,83,469,111"/>
<area shape="rect" id="node4" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,161,91,189"/>
<area shape="rect" id="node5" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,161,188,189"/>
<area shape="rect" id="node7" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="212,161,299,189"/>
<area shape="rect" id="node9" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="324,161,395,189"/>
<area shape="rect" id="node11" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="419,161,484,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="21,79,95,104"/>
<area shape="rect" id="node3" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="119,79,191,104"/>
<area shape="rect" id="node6" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="220,79,293,104"/>
<area shape="rect" id="node8" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="324,79,381,104"/>
<area shape="rect" id="node10" href="$_wii_8h.html" title="Wii.h" alt="" coords="419,79,470,104"/>
<area shape="rect" id="node4" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,152,92,177"/>
<area shape="rect" id="node5" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="116,152,189,177"/>
<area shape="rect" id="node7" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="213,152,300,177"/>
<area shape="rect" id="node9" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="325,152,396,177"/>
<area shape="rect" id="node11" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="420,152,485,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,3 +1,3 @@
<map id="BTD.h" name="BTD.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,83,63,111"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,79,63,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTD.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,186 +107,186 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _btd_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _btd_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _btd_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//PID and VID of the Sony PS3 devices</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514"> 24</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 25</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 26</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 27</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d"> 29</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_VID 0x0A5C // The IOGEAR GBU521 dongle does not presents itself correctly, so we have to check for it manually</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 30</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 30</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 33</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // Max size for ACL data</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 36</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"></span><span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5"> 38</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 39</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 39</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">/* Bluetooth HCI states for hci_task() */</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a"> 42</a></span>&#160;<span class="preprocessor">#define HCI_INIT_STATE 0</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_RESET_STATE 1</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CLASS_STATE 2</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_BDADDR_STATE 3</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 4</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 48</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 43</a></span>&#160;<span class="preprocessor">#define HCI_RESET_STATE 1</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002"> 44</a></span>&#160;<span class="preprocessor">#define HCI_CLASS_STATE 2</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 45</a></span>&#160;<span class="preprocessor">#define HCI_BDADDR_STATE 3</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 46</a></span>&#160;<span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 4</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 47</a></span>&#160;<span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 48</a></span>&#160;<span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 50</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 7 // These three states are only used if it should pair and connect to a device</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 51</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 52</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf"> 54</a></span>&#160;<span class="preprocessor">#define HCI_SCANNING_STATE 10</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECT_IN_STATE 11</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_REMOTE_NAME_STATE 12</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECTED_STATE 13</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 58</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 14</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 59</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DONE_STATE 15</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 60</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DISCONNECT_STATE 16</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 55</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_IN_STATE 11</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 56</a></span>&#160;<span class="preprocessor">#define HCI_REMOTE_NAME_STATE 12</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 57</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_STATE 13</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 58</a></span>&#160;<span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 14</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 59</a></span>&#160;<span class="preprocessor">#define HCI_DONE_STATE 15</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 60</a></span>&#160;<span class="preprocessor">#define HCI_DISCONNECT_STATE 16</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* HCI event flags*/</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 63</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE 0x01</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE 0x02</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE 0x04</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE 0x08</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST 0x10</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_READ_BDADDR 0x20</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 69</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_READ_VERSION 0x40</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 70</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND 0x80</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 71</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT 0x100</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 64</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE 0x02</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 65</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE 0x04</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 66</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE 0x08</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 67</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST 0x10</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 68</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_BDADDR 0x20</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 69</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_VERSION 0x40</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 70</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND 0x80</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 71</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT 0x100</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/* Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5"> 74</a></span>&#160;<span class="preprocessor">#define hci_check_flag(flag) (hci_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 75</a></span>&#160;<span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 76</a></span>&#160;<span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 79</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 82</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 83</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 84</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 85</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 86</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 87</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 90</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 94</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 95</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 96</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 97</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 98</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 99</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 80</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 81</a></span>&#160;<span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 82</a></span>&#160;<span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 83</a></span>&#160;<span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 84</a></span>&#160;<span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 85</a></span>&#160;<span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 86</a></span>&#160;<span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 87</a></span>&#160;<span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 88</a></span>&#160;<span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 89</a></span>&#160;<span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 90</a></span>&#160;<span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 91</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 92</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 93</a></span>&#160;<span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 94</a></span>&#160;<span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 95</a></span>&#160;<span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 96</a></span>&#160;<span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 97</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 98</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 99</a></span>&#160;<span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 100</a></span>&#160;<span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">/* Bluetooth states for the different Bluetooth drivers */</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 103</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DONE 1</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 104</a></span>&#160;<span class="preprocessor">#define L2CAP_DONE 1</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">/* Used for HID Control channel */</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 107</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 2</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 108</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 109</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 110</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 108</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 109</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 110</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">/* Used for HID Interrupt channel */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 113</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 6</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 114</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 115</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 116</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 114</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 115</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 116</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">/* Used for SDP channel */</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0"> 119</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 10</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 120</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 120</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">/* Used for RFCOMM channel */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 123</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 12</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 124</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 124</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 126</a></span>&#160;<span class="preprocessor">#define L2CAP_DISCONNECT_RESPONSE 14 // Used for both SDP and RFCOMM channel</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">/* Bluetooth states used by some drivers */</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670"> 129</a></span>&#160;<span class="preprocessor">#define TURN_ON_LED 17</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 130</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 133</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 130</a></span>&#160;<span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 131</a></span>&#160;<span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 132</a></span>&#160;<span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 133</a></span>&#160;<span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">/* L2CAP event flags for HID Control channel */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 136</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x00000001</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 137</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x00000002</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 138</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x00000004</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 139</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x00000008</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 137</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x00000002</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 138</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x00000004</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 139</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x00000008</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">/* L2CAP event flags for HID Interrupt channel */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 142</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x00000010</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 143</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x00000020</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 144</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x00000040</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 145</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x00000080</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 143</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x00000020</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 144</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x00000040</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 145</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x00000080</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">/* L2CAP event flags for SDP channel */</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 148</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST 0x00000100</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 149</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS 0x00000200</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 150</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST 0x00000400</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 149</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS 0x00000200</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 150</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST 0x00000400</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">/* L2CAP event flags for RFCOMM channel */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 153</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST 0x00000800</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 154</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS 0x00001000</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 155</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST 0x00002000</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 154</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS 0x00001000</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 155</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST 0x00002000</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 157</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE 0x00004000</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8"> 160</a></span>&#160;<span class="preprocessor">#define l2cap_check_flag(flag) (l2cap_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 161</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 162</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 161</a></span>&#160;<span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 162</a></span>&#160;<span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 165</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 166</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 167</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 168</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 169</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 170</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 171</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 172</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 173</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 166</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 167</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 168</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 169</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 170</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 171</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 172</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 173</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 176</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 177</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 177</a></span>&#160;<span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 180</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 181</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 182</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 183</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 181</a></span>&#160;<span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 182</a></span>&#160;<span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 183</a></span>&#160;<span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 186</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 187</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 187</a></span>&#160;<span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 189</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19"> 190</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BTD_NUM_SERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19"> 190</a></span>&#160;<span class="preprocessor">#define BTD_NUM_SERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 192</a></span>&#160;<span class="preprocessor">#define PAIR 1</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">/* acl_handle_ok or it&#39;s a new connection */</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((uint16_t)(x[0]) | (uint16_t)(x[1] &lt;&lt; 8)) == (y | 0x2000U)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((uint16_t)(x[0]) | (uint16_t)(x[1] &lt;&lt; 8)) == (y | 0x2000U)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> * Better implementation.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> * o One place for this code, it is reused four times in the source.</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> * Perhaps it is better as a function.</span></div>
@ -296,8 +296,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> * o How does this compare in code size? No difference. It is a free optimization.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372"> 207</a></span>&#160;<span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((x[0] == (y &amp; 0xff)) &amp;&amp; (x[1] == ((y &gt;&gt; 8) | 0x20)))</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 211</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>);</div>
@ -491,7 +491,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="class_b_t_d_html_a3aea445b2349e99ef057db1a4ffdd9dc"><div class="ttname"><a href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">BTD::motionPlusInside</a></div><div class="ttdeci">bool motionPlusInside</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00511">BTD.h:511</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8767529bd203c549348a38ac9c6682b3"><div class="ttname"><a href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">BTD::hci_remote_name</a></div><div class="ttdeci">void hci_remote_name()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00989">BTD.cpp:989</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="class_b_t_d_html_a5f07597fe15a2b917cce405fe87f2981"><div class="ttname"><a href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD::BTD</a></div><div class="ttdeci">BTD(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00027">BTD.cpp:27</a></div></div>
@ -503,7 +503,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a7dd7faaec1d3d9a1d8159cc2a4190977"><div class="ttname"><a href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">BTD::hci_write_scan_enable</a></div><div class="ttdeci">void hci_write_scan_enable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00933">BTD.cpp:933</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa87c23bce56a20f2db47c6a40c8eda87"><div class="ttname"><a href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00365">BTD.cpp:365</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01297">BTD.cpp:1297</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afce880b09049d7105f8e68ff36d9ad17"><div class="ttname"><a href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a></div><div class="ttdeci">#define USB_CLASS_WIRELESS_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00055">UsbCore.h:55</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afce880b09049d7105f8e68ff36d9ad17"><div class="ttname"><a href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a></div><div class="ttdeci">#define USB_CLASS_WIRELESS_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa7735da01865bab01b569ee836173737"><div class="ttname"><a href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">BTD::watingForConnection</a></div><div class="ttdeci">bool watingForConnection</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00471">BTD.h:471</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="class_b_t_d_html_a58f78a9a28db81858dcc34a32a2ec82c"><div class="ttname"><a href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">BTD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00539">BTD.h:539</a></div></div>
@ -543,7 +543,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a9a17405df60591b909ff1502fb8f3141"><div class="ttname"><a href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">BTD::hci_write_class_of_device</a></div><div class="ttdeci">void hci_write_class_of_device()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01154">BTD.cpp:1154</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01104">BTD.cpp:1104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2c060a7be42c5c4c57990cacec0b45f5"><div class="ttname"><a href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a></div><div class="ttdeci">#define HCI_CHECK_DEVICE_SERVICE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00048">BTD.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a680692ff13cb37eb81ddbb74bc9e0383"><div class="ttname"><a href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">BluetoothService::Run</a></div><div class="ttdeci">virtual void Run()</div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00544">BTD.h:544</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01118">BTD.cpp:1118</a></div></div>
@ -564,7 +564,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTHID.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">BTHID.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for BTHID.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8cpp__incl.png" border="0" usemap="#_b_t_h_i_d_8cpp" alt=""/></div>
<map name="_b_t_h_i_d_8cpp" id="_b_t_h_i_d_8cpp">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,83,109,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,79,110,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,152,150,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,372,114,397"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="88,225,139,251"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/></map>
</div>
</div>
<p><a href="_b_t_h_i_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for BTHID.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,8 +1,8 @@
<map id="BTHID.cpp" name="BTHID.cpp">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,83,109,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,79,110,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,152,150,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,372,114,397"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="88,225,139,251"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,299,224,324"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTHID.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -117,11 +117,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>; i++)</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; pRptParser[i] = NULL;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>)</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> = pin;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> = pin;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">/* Set device cid for the control and intterrupt channelse - LSB */</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; control_dcid[0] = 0x70; <span class="comment">// 0x0070</span></div>
@ -142,29 +142,29 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0"> 52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a>() { <span class="comment">// Use this void to disconnect the device</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// First the HID interrupt channel has to be disconnected, then the HID control channel and finally the HCI connection</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, ++identifier, interrupt_scid, interrupt_dcid);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, ++identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, interrupt_dcid);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a>(uint8_t* l2capinbuf) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(!pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">//if((l2capinbuf[0] | (uint16_t)l2capinbuf[1] &lt;&lt; 8) == (hci_handle | 0x2000U)) { // acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a>(l2capinbuf, hci_handle)) { <span class="comment">// acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a>(l2capinbuf, <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>)) { <span class="comment">// acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">// l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -177,25 +177,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; control_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; control_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[14] == interrupt_dcid[0] &amp;&amp; l2capinbuf[15] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; interrupt_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; interrupt_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -206,15 +206,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; control_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; control_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>) {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; interrupt_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; interrupt_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a>) {</div>
@ -232,56 +232,56 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a>) {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], control_scid);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], interrupt_scid);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, l2capinbuf[9], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a>) {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, control_dcid, control_scid);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a>) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_scid[0] &amp;&amp; l2capinbuf[13] == control_scid[1]) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Control Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_scid[0] &amp;&amp; l2capinbuf[13] == interrupt_scid[1]) {</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0] &amp;&amp; l2capinbuf[13] == <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]) {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Interrupt Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Interrupt: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Interrupt: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af9a13ab2a8c9c10fc74b3ed7dde1ff52">ParseBTHID</a>(<span class="keyword">this</span>, (uint8_t)(length - 1), &amp;l2capinbuf[9]);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>((uint8_t)(length - 1), &amp;l2capinbuf[9]);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">switch</span>(l2capinbuf[9]) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> 0x01: <span class="comment">// Keyboard or Joystick events</span></div>
@ -293,25 +293,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>])</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == control_dcid[0] &amp;&amp; l2capinbuf[7] == control_dcid[1]) { <span class="comment">// l2cap_control</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Control: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Control: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
@ -325,7 +325,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"></span> L2CAP_task();</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; L2CAP_task();</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
@ -335,9 +335,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div>
@ -345,14 +345,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; delay(1);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; identifier++;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; delay(1);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
@ -362,10 +362,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)) {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; identifier++;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
@ -375,10 +375,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; delay(1); <span class="comment">// Short delay between commands - just to be sure</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; identifier++;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div>
@ -386,10 +386,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)) {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; identifier++;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">break</span>;</div>
@ -397,10 +397,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; onInit();</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
@ -413,10 +413,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, identifier, control_scid, control_dcid);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; identifier++;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, control_dcid);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">break</span>;</div>
@ -424,10 +424,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
@ -438,27 +438,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc"> 347</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a>() {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"></span> hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a> = <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; identifier = 0;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; delay(1);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, control_dcid, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; identifier++;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; delay(1);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, identifier, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">break</span>;</div>
@ -471,17 +471,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keywordtype">void</span> BTHID::setProtocol() {</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet protocol mode: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet protocol mode: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; D_PrintHex&lt;uint8_t &gt; (protocolMode, 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (protocolMode != <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a> &amp;&amp; protocolMode != <a class="code" href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (protocolMode != <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a> &amp;&amp; protocolMode != <a class="code" href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNot a valid protocol mode. Using Boot protocol instead.&quot;</span>), 0x80);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNot a valid protocol mode. Using Boot protocol instead.&quot;</span>), 0x80);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"></span> protocolMode = <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>; <span class="comment">// Use Boot Protocol by default</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; protocolMode = <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>; <span class="comment">// Use Boot Protocol by default</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; uint8_t command = 0x70 | protocolMode; <span class="comment">// Set Protocol, see Bluetooth HID specs page 33</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, &amp;command, 1, control_scid[0], control_scid[1]);</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, &amp;command, 1, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310"> 396</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a>(uint8_t data) {</div>
@ -489,7 +489,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; buf[0] = 0xA2; <span class="comment">// HID BT DATA_request (0xA0) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; buf[1] = 0x01; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; buf[2] = data;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, buf, 3, interrupt_scid[0], interrupt_scid[1]);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, buf, 3, <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[1]);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
@ -504,16 +504,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="hid_8h_html_a5153bc7974af5cfead6daea72b8b2f6a"><div class="ttname"><a href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a></div><div class="ttdeci">#define HID_RPT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00083">hid.h:83</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01284">BTD.cpp:1284</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00139">BTHID.h:139</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00104">BTD.h:104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00109">BTD.h:109</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00103">BTD.h:103</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00124">BTHID.h:124</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00123">BTHID.h:123</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aaaf733ee2c84bd8df4d24f2ae1f3b378"><div class="ttname"><a href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00108">BTD.h:108</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01297">BTD.cpp:1297</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="hid_8h_html_a41258c5dd55e5ae0378ec8ded892ce37"><div class="ttname"><a href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a></div><div class="ttdeci">#define HID_BOOT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00082">hid.h:82</a></div></div>
@ -527,14 +529,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01142">BTD.cpp:1142</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00145">BTD.h:145</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00052">BTHID.cpp:52</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af9a13ab2a8c9c10fc74b3ed7dde1ff52"><div class="ttname"><a href="class_b_t_h_i_d.html#af9a13ab2a8c9c10fc74b3ed7dde1ff52">BTHID::ParseBTHID</a></div><div class="ttdeci">virtual void ParseBTHID(BTHID *bthid, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00116">BTHID.h:116</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00115">BTHID.h:115</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00160">BTD.h:160</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2e5a9c283f0912833f3e0418d3feadd7"><div class="ttname"><a href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_CONTROL_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00138">BTD.h:138</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00170">BTD.h:170</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00110">BTD.h:110</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00136">BTD.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00183">BTD.h:183</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
@ -562,7 +566,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTHID.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,21 +92,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">BTHID.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="hidboot_8h_source.html">hidboot.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="hidboot_8h_source.html">hidboot.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for BTHID.h:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8h__incl.png" border="0" usemap="#_b_t_h_i_d_8h" alt=""/></div>
<map name="_b_t_h_i_d_8h" id="_b_t_h_i_d_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/><area shape="rect" id="node4" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,83,149,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="57,315,113,343"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="88,161,137,189"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,238,223,266"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node4" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,79,150,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="57,299,114,324"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="88,152,139,177"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8h__dep__incl.png" border="0" usemap="#_b_t_h_i_d_8hdep" alt=""/></div>
<map name="_b_t_h_i_d_8hdep" id="_b_t_h_i_d_8hdep">
<area shape="rect" id="node2" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,83,91,111"/><area shape="rect" id="node3" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,83,188,111"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,79,92,104"/><area shape="rect" id="node3" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="116,79,189,104"/></map>
</div>
</div>
<p><a href="_b_t_h_i_d_8h_source.html">Go to the source code of this file.</a></p>
@ -173,7 +173,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,4 +1,4 @@
<map id="BTHID.h" name="BTHID.h">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,83,91,111"/>
<area shape="rect" id="node3" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,83,188,111"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,79,92,104"/>
<area shape="rect" id="node3" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="116,79,189,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -1,7 +1,7 @@
<map id="BTHID.h" name="BTHID.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/>
<area shape="rect" id="node4" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,83,149,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,315,113,343"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="88,161,137,189"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,238,223,266"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node4" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,79,150,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,299,114,324"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="88,152,139,177"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,225,224,251"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: BTHID.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,15 +107,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _bthid_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _bthid_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _bthid_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hidboot_8h.html">hidboot.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e"> 24</a></span>&#160;<span class="preprocessor">#define KEYBOARD_PARSER_ID 0</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MOUSE_PARSER_ID 1</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define NUM_PARSERS 2</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be"> 25</a></span>&#160;<span class="preprocessor">#define MOUSE_PARSER_ID 1</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93"> 26</a></span>&#160;<span class="preprocessor">#define NUM_PARSERS 2</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html"> 29</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_h_i_d.html">BTHID</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a> = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;0000&quot;</span>);</div>
@ -146,8 +146,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4"> 92</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45"> 95</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c"> 104</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
@ -155,62 +155,67 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#af9a13ab2a8c9c10fc74b3ed7dde1ff52"> 116</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af9a13ab2a8c9c10fc74b3ed7dde1ff52">ParseBTHID</a>(<a class="code" href="class_b_t_h_i_d.html">BTHID</a> *bthid, uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421"> 120</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0"> 124</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>() {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>]; <span class="comment">// Pointer to HIDReportParsers.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; };</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint16_t hci_handle;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it already has established a connection</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421"> 119</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0"> 123</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">ResetBTHID</a>() {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d"> 129</a></span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *<a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf"> 132</a></span>&#160; uint16_t <a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c"> 136</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[2];</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc"> 139</a></span>&#160; uint8_t <a class="code" href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">interrupt_scid</a>[2];</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>]; <span class="comment">// Pointer to HIDReportParsers.</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">OnInitBTHID</a>();</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it already has established a connection</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">/* Variables used for L2CAP communication */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint8_t control_dcid[2]; <span class="comment">// L2CAP device CID for HID_Control - Always 0x0070</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// L2CAP device CID for HID_Interrupt - Always 0x0071</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;};</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="hidboot_8h_html"><div class="ttname"><a href="hidboot_8h.html">hidboot.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a6d92c1771d643172094fcd084f418421"><div class="ttname"><a href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">BTHID::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00120">BTHID.h:120</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a6d92c1771d643172094fcd084f418421"><div class="ttname"><a href="class_b_t_h_i_d.html#a6d92c1771d643172094fcd084f418421">BTHID::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00119">BTHID.h:119</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00059">BTHID.cpp:59</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a34a91f92ea32033403c2b37af92535dc"><div class="ttname"><a href="class_b_t_h_i_d.html#a34a91f92ea32033403c2b37af92535dc">BTHID::interrupt_scid</a></div><div class="ttdeci">uint8_t interrupt_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00139">BTHID.h:139</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00124">BTHID.h:124</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acc22bf5baaa096fe09b72c812c1134f0"><div class="ttname"><a href="class_b_t_h_i_d.html#acc22bf5baaa096fe09b72c812c1134f0">BTHID::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00123">BTHID.h:123</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ac2d67e173774e344bca86fbd0ed5a10c"><div class="ttname"><a href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">BTHID::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00104">BTHID.h:104</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00516">BTD.h:516</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00052">BTHID.cpp:52</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af9a13ab2a8c9c10fc74b3ed7dde1ff52"><div class="ttname"><a href="class_b_t_h_i_d.html#af9a13ab2a8c9c10fc74b3ed7dde1ff52">BTHID::ParseBTHID</a></div><div class="ttdeci">virtual void ParseBTHID(BTHID *bthid, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00116">BTHID.h:116</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ade1924514bc9c9cd71f54a1f37529575"><div class="ttname"><a href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">BTHID::GetReportParser</a></div><div class="ttdeci">HIDReportParser * GetReportParser(uint8_t id)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00058">BTHID.h:58</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a4de4a1efd32000a0cf5a884456e52c7d"><div class="ttname"><a href="class_b_t_h_i_d.html#a4de4a1efd32000a0cf5a884456e52c7d">BTHID::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00115">BTHID.h:115</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae20db05997d6849ad3de3d7eb6145f93"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a></div><div class="ttdeci">#define NUM_PARSERS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html"><div class="ttname"><a href="class_h_i_d_report_parser.html">HIDReportParser</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00138">hid.h:138</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
@ -224,7 +229,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3BT.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS3BT.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3BT.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_b_t_8cpp__incl.png" border="0" usemap="#_p_s3_b_t_8cpp" alt=""/></div>
<map name="_p_s3_b_t_8cpp" id="_p_s3_b_t_8cpp">
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,83,127,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="6,161,65,189"/><area shape="rect" id="node5" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,161,195,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="5,238,61,266"/><area shape="rect" id="node6" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,238,213,266"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,79,127,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="7,152,66,177"/><area shape="rect" id="node5" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,152,195,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/><area shape="rect" id="node6" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,225,214,251"/></map>
</div>
</div>
<p><a href="_p_s3_b_t_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for PS3BT.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,7 +1,7 @@
<map id="PS3BT.cpp" name="PS3BT.cpp">
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,83,127,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="6,161,65,189"/>
<area shape="rect" id="node5" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,161,195,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,238,61,266"/>
<area shape="rect" id="node6" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,238,213,266"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="54,79,127,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="7,152,66,177"/>
<area shape="rect" id="node5" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,152,195,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,225,61,251"/>
<area shape="rect" id="node6" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,225,214,251"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3BT.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -292,7 +292,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; strcpy_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a>.write((uint8_t*)statusOutput, strlen(statusOutput));</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a>.write(statusOutput);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f"> 207</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a>() {</div>
@ -332,7 +332,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBut should be at least 3\r\nThis means that it doesn&#39;t support Bluetooth Version 2.0+EDR&quot;</span>), 0x80);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">//if((ACLData[0] | (uint16_t)ACLData[1] &lt;&lt; 8) == (hci_handle | 0x2000U)) { //acl_handle_ok</span></div>
@ -341,7 +341,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">//l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -354,9 +354,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -367,7 +367,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; control_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; control_scid[1] = l2capinbuf[15];</div>
@ -399,16 +399,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a>) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, control_dcid, control_scid);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
@ -424,354 +424,355 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nL2CAP Interrupt&quot;), 0x80);</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a> || <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a> || <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">/* Read Report */</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a> || <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>)</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; ButtonState = (uint32_t)(l2capinbuf[11] | ((uint16_t)l2capinbuf[12] &lt;&lt; 8) | ((uint32_t)l2capinbuf[13] &lt;&lt; 16));</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>)</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; ButtonState = (uint32_t)(l2capinbuf[10] | ((uint16_t)l2capinbuf[11] &lt;&lt; 8) | ((uint32_t)l2capinbuf[12] &lt;&lt; 16));</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;, 0x80);</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT // Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the PS3 Controllers</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 10; i &lt; 58; i++) {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i], 0x80);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; L2CAP_task();</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="keywordtype">void</span> PS3BT::L2CAP_task() {</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; delay(1);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; identifier++;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; delay(1);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"></span> l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; delay(1);</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; identifier++;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; delay(1);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;M&#39;</span>) { <span class="comment">// First letter in Motion Controller (&#39;M&#39;)</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; memset(l2capinbuf, 0, <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>); <span class="comment">// Reset l2cap in buffer as it sometimes read it as a button has been pressed</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828">PS3_ENABLE_SIXAXIS</a>;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; timer = millis();</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">/* These states are handled in Run() */</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; lastMessageTime = millis(); <span class="comment">// Store the last message time</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a> || <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>)</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; ButtonState = (uint32_t)(l2capinbuf[11] | ((uint16_t)l2capinbuf[12] &lt;&lt; 8) | ((uint32_t)l2capinbuf[13] &lt;&lt; 16));</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>)</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; ButtonState = (uint32_t)(l2capinbuf[10] | ((uint16_t)l2capinbuf[11] &lt;&lt; 8) | ((uint32_t)l2capinbuf[12] &lt;&lt; 16));</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;, 0x80);</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT // Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the PS3 Controllers</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 10; i &lt; 58; i++) {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i], 0x80);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; L2CAP_task();</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;}</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="keywordtype">void</span> PS3BT::L2CAP_task() {</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; delay(1);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; identifier++;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; delay(1);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; delay(1);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; identifier++;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; delay(1);</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;M&#39;</span>) { <span class="comment">// First letter in Motion Controller (&#39;M&#39;)</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; memset(l2capinbuf, 0, <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>); <span class="comment">// Reset l2cap in buffer as it sometimes read it as a button has been pressed</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828">PS3_ENABLE_SIXAXIS</a>;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; timer = millis();</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, identifier, control_scid, control_dcid);</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;}</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086"> 456</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a>() {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828">PS3_ENABLE_SIXAXIS</a>:</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 1000) { <span class="comment">// loop 1 second before sending the command</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; memset(l2capinbuf, 0, <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>); <span class="comment">// Reset l2cap in buffer as it sometimes read it as a button has been pressed</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 15; i &lt; 19; i++)</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; l2capinbuf[i] = 0x7F; <span class="comment">// Set the analog joystick values to center position</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; enable_sixaxis();</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; timer = millis();</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>:</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 1000) { <span class="comment">// loop 1 second before sending the command</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;P&#39;</span>) { <span class="comment">// First letter in PLAYSTATION(R)3 Controller (&#39;P&#39;)</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;N&#39;</span>) { <span class="comment">// First letter in Navigation Controller (&#39;N&#39;)</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;M&#39;</span>) { <span class="comment">// First letter in Motion Controller (&#39;M&#39;)</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; timerBulbRumble = millis();</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; ButtonState = 0; <span class="comment">// Clear all values</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; OldButtonState = 0;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; ButtonClickState = 0;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; onInit(); <span class="comment">// Turn on the LED on the controller</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>) { <span class="comment">// The Bulb and rumble values, has to be send at aproximatly every 5th second for it to stay on</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span>(millis() - timerBulbRumble &gt; 4000) { <span class="comment">// Send at least every 4th second</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>); <span class="comment">// The Bulb and rumble values, has to be written again and again, for it to stay turned on</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; timerBulbRumble = millis();</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;}</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">/* These states are handled in Run() */</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; identifier++;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, identifier, control_scid, control_dcid);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086"> 458</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a>() {</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828">PS3_ENABLE_SIXAXIS</a>:</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 1000) { <span class="comment">// loop 1 second before sending the command</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; memset(l2capinbuf, 0, <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>); <span class="comment">// Reset l2cap in buffer as it sometimes read it as a button has been pressed</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 15; i &lt; 19; i++)</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; l2capinbuf[i] = 0x7F; <span class="comment">// Set the analog joystick values to center position</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; enable_sixaxis();</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; timer = millis();</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a>:</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 1000) { <span class="comment">// loop 1 second before sending the command</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;P&#39;</span>) { <span class="comment">// First letter in PLAYSTATION(R)3 Controller (&#39;P&#39;)</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;N&#39;</span>) { <span class="comment">// First letter in Navigation Controller (&#39;N&#39;)</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(remote_name[0] == <span class="charliteral">&#39;M&#39;</span>) { <span class="comment">// First letter in Motion Controller (&#39;M&#39;)</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; timerBulbRumble = millis();</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; ButtonState = 0; <span class="comment">// Clear all values</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; OldButtonState = 0;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; ButtonClickState = 0;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; onInit(); <span class="comment">// Turn on the LED on the controller</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>) { <span class="comment">// The Bulb and rumble values, has to be send at aproximatly every 5th second for it to stay on</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span>(millis() - timerBulbRumble &gt; 4000) { <span class="comment">// Send at least every 4th second</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>); <span class="comment">// The Bulb and rumble values, has to be written again and again, for it to stay turned on</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; timerBulbRumble = millis();</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;}</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment">// Playstation Sixaxis Dualshock and Navigation Controller commands</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="keywordtype">void</span> PS3BT::HID_Command(uint8_t* data, uint8_t nbytes) {</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>(millis() - timerHID &lt;= 150) <span class="comment">// Check if is has been more than 150ms since last command</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; delay((uint32_t)(150 - (millis() - timerHID))); <span class="comment">// There have to be a delay between commands</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, data, nbytes, control_scid[0], control_scid[1]); <span class="comment">// Both the Navigation and Dualshock controller sends data via the control channel</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; timerHID = millis();</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2"> 521</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a>() {</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; HIDBuffer[3] = 0x00; <span class="comment">// Rumble bytes</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; HIDBuffer[4] = 0x00;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; HIDBuffer[5] = 0x00;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; HIDBuffer[6] = 0x00;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; HIDBuffer[11] = 0x00; <span class="comment">// LED byte</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="comment">// Playstation Sixaxis Dualshock and Navigation Controller commands</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="keywordtype">void</span> PS3BT::HID_Command(uint8_t* data, uint8_t nbytes) {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>(millis() - timerHID &lt;= 150) <span class="comment">// Check if is has been more than 150ms since last command</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; delay((uint32_t)(150 - (millis() - timerHID))); <span class="comment">// There have to be a delay between commands</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, data, nbytes, control_scid[0], control_scid[1]); <span class="comment">// Both the Navigation and Dualshock controller sends data via the control channel</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; timerHID = millis();</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2"> 523</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a>() {</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; HIDBuffer[3] = 0x00; <span class="comment">// Rumble bytes</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; HIDBuffer[4] = 0x00;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; HIDBuffer[5] = 0x00;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; HIDBuffer[6] = 0x00;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;}</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e"> 532</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a>() {</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; HIDBuffer[3] = 0x00;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; HIDBuffer[4] = 0x00;</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; HIDBuffer[5] = 0x00;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; HIDBuffer[6] = 0x00;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87"> 541</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode) {</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8_t power[2] = {0xff, 0x00}; <span class="comment">// Defaults to RumbleLow</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span>(mode == <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; power[0] = 0x00;</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; power[1] = 0xff;</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(0xfe, power[0], 0xfe, power[1]);</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ae309556e995afc10b13dfbe4e6c32798"> 550</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower) {</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; HIDBuffer[3] = rightDuration;</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; HIDBuffer[4] = rightPower;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; HIDBuffer[5] = leftDuration;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; HIDBuffer[6] = leftPower;</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;}</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb"> 558</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; HIDBuffer[11] = value &lt;&lt; 1;</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;}</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div>
<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#af8677eaae9121a60947a1743628cd20a"> 563</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; HIDBuffer[11] &amp;= ~((uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;}</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div>
<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449"> 568</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">if</span>(a == <a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a>)</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; HIDBuffer[11] |= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;}</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208"> 577</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; HIDBuffer[11] ^= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;}</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="keywordtype">void</span> PS3BT::enable_sixaxis() { <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; uint8_t cmd_buf[6];</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; cmd_buf[0] = 0x53; <span class="comment">// HID BT Set_report (0x50) | Report Type (Feature 0x03)</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; cmd_buf[1] = 0xF4; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; cmd_buf[2] = 0x42; <span class="comment">// Special PS3 Controller enable commands</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; cmd_buf[3] = 0x03;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; cmd_buf[4] = 0x00;</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; cmd_buf[5] = 0x00;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; HID_Command(cmd_buf, 6);</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;}</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment">// Playstation Move Controller commands</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; HIDBuffer[11] = 0x00; <span class="comment">// LED byte</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;}</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e"> 534</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a>() {</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; HIDBuffer[3] = 0x00;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; HIDBuffer[4] = 0x00;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; HIDBuffer[5] = 0x00;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; HIDBuffer[6] = 0x00;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;}</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87"> 543</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode) {</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; uint8_t power[2] = {0xff, 0x00}; <span class="comment">// Defaults to RumbleLow</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span>(mode == <a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; power[0] = 0x00;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; power[1] = 0xff;</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(0xfe, power[0], 0xfe, power[1]);</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div>
<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ae309556e995afc10b13dfbe4e6c32798"> 552</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower) {</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; HIDBuffer[3] = rightDuration;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; HIDBuffer[4] = rightPower;</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; HIDBuffer[5] = leftDuration;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; HIDBuffer[6] = leftPower;</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;}</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div>
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb"> 560</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; HIDBuffer[11] = value &lt;&lt; 1;</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#af8677eaae9121a60947a1743628cd20a"> 565</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; HIDBuffer[11] &amp;= ~((uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449"> 570</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span>(a == <a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a>)</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; HIDBuffer[11] |= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;}</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208"> 579</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a) {</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; HIDBuffer[11] ^= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; HID_Command(HIDBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;}</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="keywordtype">void</span> PS3BT::enable_sixaxis() { <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; uint8_t cmd_buf[6];</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; cmd_buf[0] = 0x53; <span class="comment">// HID BT Set_report (0x50) | Report Type (Feature 0x03)</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; cmd_buf[1] = 0xF4; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; cmd_buf[2] = 0x42; <span class="comment">// Special PS3 Controller enable commands</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; cmd_buf[3] = 0x03;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; cmd_buf[4] = 0x00;</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; cmd_buf[5] = 0x00;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; HID_Command(cmd_buf, 6);</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;}</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keywordtype">void</span> PS3BT::HIDMove_Command(uint8_t* data, uint8_t nbytes) {</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">if</span>(millis() - timerHID &lt;= 150)<span class="comment">// Check if is has been less than 150ms since last command</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; delay((uint32_t)(150 - (millis() - timerHID))); <span class="comment">// There have to be a delay between commands</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, data, nbytes, interrupt_scid[0], interrupt_scid[1]); <span class="comment">// The Move controller sends it&#39;s data via the intterrupt channel</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; timerHID = millis();</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;}</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782"> 603</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b) { <span class="comment">// Use this to set the Color using RGB values</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// Set the Bulb&#39;s values into the write buffer</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; HIDMoveBuffer[3] = r;</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; HIDMoveBuffer[4] = g;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; HIDMoveBuffer[5] = b;</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;}</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div>
<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#abe1292b459edfd114ef129b3320d5317"> 612</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color) { <span class="comment">// Use this to set the Color using the predefined colors in enum</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>((uint8_t)(color &gt;&gt; 16), (uint8_t)(color &gt;&gt; 8), (uint8_t)(color));</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;}</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div>
<div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689"> 616</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a>(uint8_t rumble) {</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rumble &lt; 64 &amp;&amp; rumble != 0) <span class="comment">// The rumble value has to at least 64, or approximately 25% (64/255*100)</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe rumble value has to at least 64, or approximately 25%&quot;</span>), 0x80);</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"></span> <span class="comment">// Set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; HIDMoveBuffer[7] = rumble;</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;}</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="keywordtype">void</span> PS3BT::onInit() {</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>)</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a>);</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">else</span> <span class="comment">// Dualshock 3 or Navigation controller</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment">// Playstation Move Controller commands</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="keywordtype">void</span> PS3BT::HIDMove_Command(uint8_t* data, uint8_t nbytes) {</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span>(millis() - timerHID &lt;= 150)<span class="comment">// Check if is has been less than 150ms since last command</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; delay((uint32_t)(150 - (millis() - timerHID))); <span class="comment">// There have to be a delay between commands</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, data, nbytes, interrupt_scid[0], interrupt_scid[1]); <span class="comment">// The Move controller sends it&#39;s data via the intterrupt channel</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; timerHID = millis();</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div>
<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782"> 605</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b) { <span class="comment">// Use this to set the Color using RGB values</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="comment">// Set the Bulb&#39;s values into the write buffer</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; HIDMoveBuffer[3] = r;</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; HIDMoveBuffer[4] = g;</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; HIDMoveBuffer[5] = b;</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;}</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div>
<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#abe1292b459edfd114ef129b3320d5317"> 614</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color) { <span class="comment">// Use this to set the Color using the predefined colors in enum</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>((uint8_t)(color &gt;&gt; 16), (uint8_t)(color &gt;&gt; 8), (uint8_t)(color));</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;}</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689"> 618</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a>(uint8_t rumble) {</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">if</span>(rumble &lt; 64 &amp;&amp; rumble != 0) <span class="comment">// The rumble value has to at least 64, or approximately 25% (64/255*100)</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe rumble value has to at least 64, or approximately 25%&quot;</span>), 0x80);</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// Set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; HIDMoveBuffer[7] = rumble;</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; HIDMove_Command(HIDMoveBuffer, <a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;}</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="keywordtype">void</span> PS3BT::onInit() {</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>)</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a>);</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">else</span> <span class="comment">// Dualshock 3 or Navigation controller</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00507">BTD.h:507</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00146">PS3Enums.h:146</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00139">PS3Enums.h:139</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00196">PS3BT.h:196</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00153">PS3Enums.h:153</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00124">PS3Enums.h:124</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00117">PS3Enums.h:117</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00201">PS3BT.h:201</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00131">PS3Enums.h:131</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00143">BTD.h:143</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a73e3a81d9a8850075fd10933acc5a035"><div class="ttname"><a href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00115">BTD.h:115</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac7aa7fd7a8a34a6c9e420e3cb114737b"><div class="ttname"><a href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_SETUP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00113">BTD.h:113</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5062acbd19a52d88a998f19060fbc46a"><div class="ttname"><a href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00159">PS3BT.cpp:159</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01231">BTD.cpp:1231</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00456">PS3BT.cpp:456</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00458">PS3BT.cpp:458</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1be7a56cdddcdb7dedf16d4dee381e93"><div class="ttname"><a href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a></div><div class="ttdeci">#define SUCCESSFUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00177">BTD.h:177</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a015f3b25bd7a2908c84b973dec453f45"><div class="ttname"><a href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00142">BTD.h:142</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00029">controllerEnums.h:29</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00568">PS3BT.cpp:568</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00570">PS3BT.cpp:570</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01284">BTD.cpp:1284</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00149">PS3Enums.h:149</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00157">PS3Enums.h:157</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00127">PS3Enums.h:127</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="class_b_t_d_html_addaddee110af23a3195ad56f631e69ea"><div class="ttname"><a href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">BTD::hci_version</a></div><div class="ttdeci">uint8_t hci_version</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00497">BTD.h:497</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199">aYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91">gYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00150">controllerEnums.h:150</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199">aYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00170">controllerEnums.h:170</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91">gYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00177">controllerEnums.h:177</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0c8cc2a2dd2cda3e760b8b4c1a2d169c"><div class="ttname"><a href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">BTD::pairWithWii</a></div><div class="ttdeci">bool pairWithWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00509">BTD.h:509</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00160">PS3Enums.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab4f49b61167df001d13b68c7699651b4"><div class="ttname"><a href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">PS3BT::getTemperature</a></div><div class="ttdeci">String getTemperature()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00144">PS3BT.cpp:144</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00616">PS3BT.cpp:616</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00618">PS3BT.cpp:618</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6b3038e881952934873fd533de842670"><div class="ttname"><a href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a></div><div class="ttdeci">#define TURN_ON_LED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00129">BTD.h:129</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7">aXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00139">controllerEnums.h:139</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7">aXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00166">controllerEnums.h:166</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8f3945da5c4e00ce2fd3daf0b6267cec"><div class="ttname"><a href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">PS3BT::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00163">PS3BT.cpp:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00521">PS3BT.cpp:521</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00523">PS3BT.cpp:523</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00185">controllerEnums.h:185</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00104">BTD.h:104</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00143">PS3Enums.h:143</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00121">PS3Enums.h:121</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00119">PS3Enums.h:119</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00109">BTD.h:109</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00103">BTD.h:103</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="_p_s3_b_t_8h_html_a465c4c33eae0fd5f934ae12bc8d6ca7e"><div class="ttname"><a href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a></div><div class="ttdeci">#define HID_BUFFERSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00024">PS3BT.h:24</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00207">PS3BT.cpp:207</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa0fd5483f227e29de23c20ee31c940aa"><div class="ttname"><a href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">BTD::remote_name</a></div><div class="ttdeci">char remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00491">BTD.h:491</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00148">controllerEnums.h:148</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00175">controllerEnums.h:175</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a90c28adabe5fc5da343fe8a5ac9ca6de"><div class="ttname"><a href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a></div><div class="ttdeci">const uint32_t PS3_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00062">PS3Enums.h:62</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5e7842bef25e7c7210974f5405e1bc81"><div class="ttname"><a href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00052">PS3BT.cpp:52</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
@ -779,78 +780,79 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01297">BTD.cpp:1297</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae1e00364c5ff214274438bf54c3cf743"><div class="ttname"><a href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00088">PS3BT.cpp:88</a></div></div>
<div class="ttc" id="settings_8h_html_a11b6e9d1bc9facf0772bda8ad763530c"><div class="ttname"><a href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a></div><div class="ttdeci">#define USB_HOST_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00024">settings.h:24</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="settings_8h_html_a11b6e9d1bc9facf0772bda8ad763530c"><div class="ttname"><a href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a></div><div class="ttdeci">#define USB_HOST_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00034">settings.h:34</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1465673868452307bcdab8e201430c27"><div class="ttname"><a href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a></div><div class="ttdeci">#define HID_CTRL_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00182">BTD.h:182</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00156">controllerEnums.h:156</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00144">PS3Enums.h:144</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00145">PS3Enums.h:145</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731">gXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00146">controllerEnums.h:146</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00183">controllerEnums.h:183</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00122">PS3Enums.h:122</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00123">PS3Enums.h:123</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731">gXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00173">controllerEnums.h:173</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00503">BTD.h:503</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_p_s3_b_t_8h_html"><div class="ttname"><a href="_p_s3_b_t_8h.html">PS3BT.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a648e2bfeb06e2dc1603202e95324b206"><div class="ttname"><a href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00067">PS3BT.cpp:67</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00188">PS3BT.h:188</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00193">PS3BT.h:193</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01142">BTD.cpp:1142</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00145">BTD.h:145</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00165">controllerEnums.h:165</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00603">PS3BT.cpp:603</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00194">PS3BT.h:194</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00192">controllerEnums.h:192</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00605">PS3BT.cpp:605</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00199">PS3BT.h:199</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1f8e9171a310e50f2c4a3c19066efe5a"><div class="ttname"><a href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">BTD::my_bdaddr</a></div><div class="ttdeci">uint8_t my_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00485">BTD.h:485</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f">aZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00141">controllerEnums.h:141</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00541">PS3BT.cpp:541</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f">aZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00168">controllerEnums.h:168</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00543">PS3BT.cpp:543</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7ba142ed3f585d034f29cc2c36fba0e9"><div class="ttname"><a href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a></div><div class="ttdeci">const uint8_t PS3_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00160">BTD.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00155">PS3Enums.h:155</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00133">PS3Enums.h:133</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00170">BTD.h:170</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00110">BTD.h:110</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00136">BTD.h:136</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f">tempMove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00153">controllerEnums.h:153</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00114">PS3Enums.h:114</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f">tempMove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00180">controllerEnums.h:180</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00183">BTD.h:183</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ac306dfe7b0e1b3a3e9bb357aa7552dec"><div class="ttname"><a href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS3_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00092">PS3Enums.h:92</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00028">controllerEnums.h:28</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00135">controllerEnums.h:135</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00162">controllerEnums.h:162</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00164">controllerEnums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00191">controllerEnums.h:191</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aa25fc1cab2e76831c39705932cf1d828"><div class="ttname"><a href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828">PS3_ENABLE_SIXAXIS</a></div><div class="ttdeci">#define PS3_ENABLE_SIXAXIS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00130">BTD.h:130</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00151">PS3Enums.h:151</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00129">PS3Enums.h:129</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00171">BTD.h:171</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00158">PS3Enums.h:158</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00154">PS3Enums.h:154</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00136">PS3Enums.h:136</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00132">PS3Enums.h:132</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00227">PS3BT.cpp:227</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8151b1fe5d940a5a7a34f43a8b8ce434"><div class="ttname"><a href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00169">BTD.h:169</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00159">PS3Enums.h:159</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00137">PS3Enums.h:137</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00147">PS3BT.h:147</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00577">PS3BT.cpp:577</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00164">PS3Enums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00067">controllerEnums.h:67</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00579">PS3BT.cpp:579</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a4898fccf5d2aa053bc67894aa3627e0f"><div class="ttname"><a href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define PS3_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00152">PS3Enums.h:152</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00130">PS3Enums.h:130</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00220">PS3BT.cpp:220</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00047">controllerEnums.h:47</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01190">BTD.cpp:1190</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01265">BTD.cpp:1265</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9960d0d5ae92fc92c70bbb84c2a5c0cc"><div class="ttname"><a href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a></div><div class="ttdeci">#define PENDING</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00176">BTD.h:176</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5f035450f226204f021e69ad1faa2e3a"><div class="ttname"><a href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a></div><div class="ttdeci">#define l2cap_set_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00161">BTD.h:161</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01248">BTD.cpp:1248</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00137">BTD.h:137</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00131">controllerEnums.h:131</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00150">PS3Enums.h:150</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00128">PS3Enums.h:128</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae6596ca28c65db105392a9fed8698ef2"><div class="ttname"><a href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00115">PS3BT.cpp:115</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6dac11972fc4b1f5984d43365be1a954"><div class="ttname"><a href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00063">PS3BT.cpp:63</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78">mYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00558">PS3BT.cpp:558</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78">mYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00187">controllerEnums.h:187</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00560">PS3BT.cpp:560</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aab14832f7844f07e6287eb443019b6e7"><div class="ttname"><a href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT::PS3BT</a></div><div class="ttdeci">PS3BT(BTD *pBtd, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00023">PS3BT.cpp:23</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00147">PS3Enums.h:147</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ab569b2085ad29f41d1da9c0ed352bd65"><div class="ttname"><a href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00116">BTD.h:116</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00532">PS3BT.cpp:532</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00534">PS3BT.cpp:534</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a3b0e522b5d8a39d3daf540e4feb4f5fe"><div class="ttname"><a href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00056">PS3BT.cpp:56</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab8d0298319d2131eb55cd94c07bcf391"><div class="ttname"><a href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a></div><div class="ttdeci">const uint8_t PS3_REPORT_BUFFER[PS3_REPORT_BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00027">PS3Enums.h:27</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6ffcd72787c86f248192eb06a3fe18cb"><div class="ttname"><a href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a></div><div class="ttdeci">#define L2CAP_CMD_COMMAND_REJECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00165">BTD.h:165</a></div></div>
@ -859,7 +861,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3BT.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,21 +92,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS3BT.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3BT.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_b_t_8h__incl.png" border="0" usemap="#_p_s3_b_t_8h" alt=""/></div>
<map name="_p_s3_b_t_8h" id="_p_s3_b_t_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="6,83,65,111"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,83,195,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="7,79,66,104"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,79,195,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_b_t_8h__dep__incl.png" border="0" usemap="#_p_s3_b_t_8hdep" alt=""/></div>
<map name="_p_s3_b_t_8hdep" id="_p_s3_b_t_8hdep">
<area shape="rect" id="node2" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,83,91,111"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="5,79,93,104"/></map>
</div>
</div>
<p><a href="_p_s3_b_t_8h_source.html">Go to the source code of this file.</a></p>
@ -141,7 +141,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,3 +1,3 @@
<map id="PS3BT.h" name="PS3BT.h">
<area shape="rect" id="node2" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,83,91,111"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="5,79,93,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1,6 +1,6 @@
<map id="PS3BT.h" name="PS3BT.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="6,83,65,111"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,83,195,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="7,79,66,104"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="96,79,195,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3BT.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,13 +107,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps3bt_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps3bt_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps3bt_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s3_enums_8h.html">PS3Enums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e"> 24</a></span>&#160;<span class="preprocessor">#define HID_BUFFERSIZE 50 // Size of the buffer for the Playstation Motion Controller</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_b_t.html">PS3BT</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *pBtd, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">setAllOff</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">setRumbleOff</a>();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(uint8_t value);</div>
@ -148,72 +148,77 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c"> 186</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 188</a></span>&#160; };</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 194</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 196</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">/* Mandatory members */</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; int16_t hci_handle;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uint8_t remote_name[30]; <span class="comment">// First 30 chars of remote name</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191"> 183</a></span>&#160; uint32_t <a class="code" href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">getLastMessageTime</a>() {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> lastMessageTime;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c"> 191</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 193</a></span>&#160; };</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 199</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 201</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">/* Mandatory members */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint32_t timerBulbRumble; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; int16_t hci_handle;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint8_t remote_name[30]; <span class="comment">// First 30 chars of remote name</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; uint32_t lastMessageTime; <span class="comment">// Variable used to store the millis value of the last message.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint32_t timerBulbRumble; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;};</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00196">PS3BT.h:196</a></div></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;};</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00201">PS3BT.h:201</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5062acbd19a52d88a998f19060fbc46a"><div class="ttname"><a href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00159">PS3BT.cpp:159</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00456">PS3BT.cpp:456</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00458">PS3BT.cpp:458</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00568">PS3BT.cpp:568</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00570">PS3BT.cpp:570</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab4f49b61167df001d13b68c7699651b4"><div class="ttname"><a href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">PS3BT::getTemperature</a></div><div class="ttdeci">String getTemperature()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00144">PS3BT.cpp:144</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00616">PS3BT.cpp:616</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00618">PS3BT.cpp:618</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8f3945da5c4e00ce2fd3daf0b6267cec"><div class="ttname"><a href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">PS3BT::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00163">PS3BT.cpp:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00521">PS3BT.cpp:521</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00523">PS3BT.cpp:523</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="_p_s3_b_t_8h_html_a465c4c33eae0fd5f934ae12bc8d6ca7e"><div class="ttname"><a href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a></div><div class="ttdeci">#define HID_BUFFERSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00024">PS3BT.h:24</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00207">PS3BT.cpp:207</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5e7842bef25e7c7210974f5405e1bc81"><div class="ttname"><a href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00052">PS3BT.cpp:52</a></div></div>
@ -221,36 +226,38 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s3_b_t_html_a07c8dcb809005e8492bbef4e1f4b9d24"><div class="ttname"><a href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">PS3BT::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00071">PS3BT.cpp:71</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae1e00364c5ff214274438bf54c3cf743"><div class="ttname"><a href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00088">PS3BT.cpp:88</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html"><div class="ttname"><a href="class_p_s3_b_t.html">PS3BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00032">PS3BT.h:32</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a11a7a031b249e09c39aa0872fa1e4a6c"><div class="ttname"><a href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">PS3BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00186">PS3BT.h:186</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a11a7a031b249e09c39aa0872fa1e4a6c"><div class="ttname"><a href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">PS3BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00191">PS3BT.h:191</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a648e2bfeb06e2dc1603202e95324b206"><div class="ttname"><a href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00067">PS3BT.cpp:67</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00188">PS3BT.h:188</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00193">PS3BT.h:193</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00603">PS3BT.cpp:603</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00194">PS3BT.h:194</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00541">PS3BT.cpp:541</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00605">PS3BT.cpp:605</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00199">PS3BT.h:199</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00543">PS3BT.cpp:543</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00114">PS3Enums.h:114</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00164">controllerEnums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00191">controllerEnums.h:191</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00227">PS3BT.cpp:227</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00147">PS3BT.h:147</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00577">PS3BT.cpp:577</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00579">PS3BT.cpp:579</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00220">PS3BT.cpp:220</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00131">controllerEnums.h:131</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae6596ca28c65db105392a9fed8698ef2"><div class="ttname"><a href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00115">PS3BT.cpp:115</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6dac11972fc4b1f5984d43365be1a954"><div class="ttname"><a href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00063">PS3BT.cpp:63</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00558">PS3BT.cpp:558</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00560">PS3BT.cpp:560</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aab14832f7844f07e6287eb443019b6e7"><div class="ttname"><a href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT::PS3BT</a></div><div class="ttdeci">PS3BT(BTD *pBtd, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00023">PS3BT.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00532">PS3BT.cpp:532</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad5b6bba68b85614f6a1b2ddeb2a3f191"><div class="ttname"><a href="class_p_s3_b_t.html#ad5b6bba68b85614f6a1b2ddeb2a3f191">PS3BT::getLastMessageTime</a></div><div class="ttdeci">uint32_t getLastMessageTime()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00183">PS3BT.h:183</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00534">PS3BT.cpp:534</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a3b0e522b5d8a39d3daf540e4feb4f5fe"><div class="ttname"><a href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00056">PS3BT.cpp:56</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3Enums.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -93,20 +93,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS3Enums.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3Enums.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_enums_8h__incl.png" border="0" usemap="#_p_s3_enums_8h" alt=""/></div>
<map name="_p_s3_enums_8h" id="_p_s3_enums_8h">
<area shape="rect" id="node2" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="5,83,133,111"/></map>
<area shape="rect" id="node2" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="5,79,134,104"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_enums_8h__dep__incl.png" border="0" usemap="#_p_s3_enums_8hdep" alt=""/></div>
<map name="_p_s3_enums_8hdep" id="_p_s3_enums_8hdep">
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="15,83,88,111"/><area shape="rect" id="node4" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="119,83,203,111"/><area shape="rect" id="node3" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,161,91,189"/><area shape="rect" id="node5" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="116,161,215,189"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="16,79,90,104"/><area shape="rect" id="node4" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="120,79,205,104"/><area shape="rect" id="node3" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="5,152,93,177"/><area shape="rect" id="node5" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="117,152,216,177"/></map>
</div>
</div>
<p><a href="_p_s3_enums_8h_source.html">Go to the source code of this file.</a></p>
@ -120,51 +120,34 @@ Macros</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:aac6fa7b0395b95cc528deaad0ce884a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00
<br/>
}</td></tr>
<tr class="separator:aac6fa7b0395b95cc528deaad0ce884a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add5c7a32e8138b44244caf07232161ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> { <br/>
<tr class="memitem:add5c7a32e8138b44244caf07232161ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> { <br />
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16
<br/>
<br />
}</td></tr>
<tr class="separator:add5c7a32e8138b44244caf07232161ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab195293384292950ebc2166bfe360fd1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> { <a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,
<a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20
}</td></tr>
<tr class="separator:ab195293384292950ebc2166bfe360fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
@ -209,47 +192,6 @@ Variables</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Used to set the colors of the move controller. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"></a>Red</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 0, b = 0 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"></a>Green</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 255, b = 0 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"></a>Blue</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 0, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"></a>Yellow</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 235, b = 4 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"></a>Lightblue</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 255, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"></a>Purble</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 0, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"></a>White</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 255, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"></a>Off</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 0, b = 0 </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00114">114</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="add5c7a32e8138b44244caf07232161ae"></a>
<div class="memitem">
<div class="memproto">
@ -260,69 +202,49 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"></a>Plugged</em>&#160;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"></a>Plugged&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"></a>Unplugged</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"></a>Unplugged&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"></a>Charging</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"></a>Charging&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"></a>NotCharging</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"></a>NotCharging&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"></a>Shutdown</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"></a>Shutdown&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"></a>Dying</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"></a>Dying&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"></a>Low</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"></a>Low&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"></a>High</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"></a>High&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"></a>Full</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"></a>Full&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"></a>MoveCharging</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"></a>MoveCharging&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"></a>MoveNotCharging</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"></a>MoveNotCharging&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"></a>MoveShutdown</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"></a>MoveShutdown&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"></a>MoveDying</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"></a>MoveDying&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"></a>MoveLow</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"></a>MoveLow&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"></a>MoveHigh</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"></a>MoveHigh&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"></a>MoveFull</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"></a>MoveFull&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"></a>CableRumble</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"></a>CableRumble&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"></a>Cable</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"></a>Cable&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"></a>BluetoothRumble</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"></a>BluetoothRumble&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"></a>Bluetooth</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"></a>Bluetooth&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00135">135</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab195293384292950ebc2166bfe360fd1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"></a>RumbleHigh</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"></a>RumbleLow</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00163">163</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00113">113</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
@ -462,7 +384,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,6 +1,6 @@
<map id="PS3Enums.h" name="PS3Enums.h">
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="15,83,88,111"/>
<area shape="rect" id="node4" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="119,83,203,111"/>
<area shape="rect" id="node3" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,161,91,189"/>
<area shape="rect" id="node5" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="116,161,215,189"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="16,79,90,104"/>
<area shape="rect" id="node4" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="120,79,205,104"/>
<area shape="rect" id="node3" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="5,152,93,177"/>
<area shape="rect" id="node5" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="117,152,216,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,3 +1,3 @@
<map id="PS3Enums.h" name="PS3Enums.h">
<area shape="rect" id="node2" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="5,83,133,111"/>
<area shape="rect" id="node2" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="5,79,134,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3Enums.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,12 +107,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps3enums_h</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps3enums_h</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps3enums_h</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f"> 24</a></span>&#160;<span class="preprocessor">#define PS3_REPORT_BUFFER_SIZE 48</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391"> 27</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[<a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>] PROGMEM = {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17"> 40</a></span>&#160;<span class="preprocessor">#define MOVE_REPORT_BUFFER_SIZE 7</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9"> 43</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; 0x00, <span class="comment">// OFF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; 0x01, <span class="comment">// LED1</span></div>
@ -189,98 +189,68 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; 15, <span class="comment">// T_ANALOG - Both at byte 14 (last reading) and byte 15 (current reading)</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;};</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2"> 114</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> {</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"> 116</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"> 118</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"> 120</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"> 123</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"> 125</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"> 127</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"> 130</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"> 132</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00,</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae"> 113</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// Note that the location is shifted 9 when it&#39;s connected via USB</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Byte location | bit location</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"> 116</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"> 117</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"> 119</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"> 120</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"> 121</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"> 122</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"> 123</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"> 124</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"> 125</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"> 127</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"> 128</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"> 129</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"> 130</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"> 131</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"> 132</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"> 133</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae"> 135</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Note that the location is shifted 9 when it&#39;s connected via USB</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// Byte location | bit location</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"> 138</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"> 139</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"> 135</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10, <span class="comment">// Operating by USB and rumble is turned on</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"> 136</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12, <span class="comment">// Operating by USB and rumble is turned off</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"> 137</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14, <span class="comment">// Operating by Bluetooth and rumble is turned on</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"> 138</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16, <span class="comment">// Operating by Bluetooth and rumble is turned off</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"> 141</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"> 142</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"> 143</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"> 144</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"> 145</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"> 146</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"> 147</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"> 149</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"> 150</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"> 151</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"> 152</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"> 153</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"> 154</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"> 155</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"> 157</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10, <span class="comment">// Operating by USB and rumble is turned on</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"> 158</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12, <span class="comment">// Operating by USB and rumble is turned off</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"> 159</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14, <span class="comment">// Operating by Bluetooth and rumble is turned on</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"> 160</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16, <span class="comment">// Operating by Bluetooth and rumble is turned off</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1"> 163</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> {</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"> 164</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,</div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"> 165</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20,</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;};</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00146">PS3Enums.h:146</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00139">PS3Enums.h:139</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00153">PS3Enums.h:153</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00165">PS3Enums.h:165</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00149">PS3Enums.h:149</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00157">PS3Enums.h:157</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00160">PS3Enums.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00123">PS3Enums.h:123</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00143">PS3Enums.h:143</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00124">PS3Enums.h:124</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00117">PS3Enums.h:117</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00131">PS3Enums.h:131</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00127">PS3Enums.h:127</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00121">PS3Enums.h:121</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00119">PS3Enums.h:119</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a90c28adabe5fc5da343fe8a5ac9ca6de"><div class="ttname"><a href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a></div><div class="ttdeci">const uint32_t PS3_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00062">PS3Enums.h:62</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00127">PS3Enums.h:127</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00144">PS3Enums.h:144</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00145">PS3Enums.h:145</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00118">PS3Enums.h:118</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00122">PS3Enums.h:122</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00123">PS3Enums.h:123</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7ba142ed3f585d034f29cc2c36fba0e9"><div class="ttname"><a href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a></div><div class="ttdeci">const uint8_t PS3_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00155">PS3Enums.h:155</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00130">PS3Enums.h:130</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00114">PS3Enums.h:114</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00133">PS3Enums.h:133</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ac306dfe7b0e1b3a3e9bb357aa7552dec"><div class="ttname"><a href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS3_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00092">PS3Enums.h:92</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00151">PS3Enums.h:151</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00158">PS3Enums.h:158</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00154">PS3Enums.h:154</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00159">PS3Enums.h:159</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00132">PS3Enums.h:132</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00164">PS3Enums.h:164</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00129">PS3Enums.h:129</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00136">PS3Enums.h:136</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00132">PS3Enums.h:132</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00137">PS3Enums.h:137</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a4898fccf5d2aa053bc67894aa3627e0f"><div class="ttname"><a href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define PS3_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00152">PS3Enums.h:152</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00150">PS3Enums.h:150</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00147">PS3Enums.h:147</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00130">PS3Enums.h:130</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00128">PS3Enums.h:128</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab8d0298319d2131eb55cd94c07bcf391"><div class="ttname"><a href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a></div><div class="ttdeci">const uint8_t PS3_REPORT_BUFFER[PS3_REPORT_BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00027">PS3Enums.h:27</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3USB.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS3USB.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s3_u_s_b_8h_source.html">PS3USB.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3USB.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_u_s_b_8cpp__incl.png" border="0" usemap="#_p_s3_u_s_b_8cpp" alt=""/></div>
<map name="_p_s3_u_s_b_8cpp" id="_p_s3_u_s_b_8cpp">
<area shape="rect" id="node2" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="41,83,125,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,161,184,189"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,238,199,266"/></map>
<area shape="rect" id="node2" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="42,79,127,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node4" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,152,184,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,225,199,251"/></map>
</div>
</div>
<p><a href="_p_s3_u_s_b_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for PS3USB.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,6 +1,6 @@
<map id="PS3USB.cpp" name="PS3USB.cpp">
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="41,83,125,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,161,184,189"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,238,199,266"/>
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="42,79,127,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node4" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,152,184,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,225,199,251"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3USB.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -146,14 +146,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3USB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3USB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"></span> <span class="comment">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
@ -161,16 +161,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
@ -211,16 +211,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a> = 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"></span> <span class="comment">//delay(300); // Spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">//delay(300); // Spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
@ -268,14 +268,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a> || PID == <a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a>) {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(PID == <a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a>) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// must be a navigation controller</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; enable_sixaxis(); <span class="comment">// The PS3 controller needs a special command before it starts sending data</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
@ -287,9 +287,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; readBuf[i] = 0x7F; <span class="comment">// Set the analog joystick values to center position</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// must be a Motion controller</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; writeBuf[0] = 0x02; <span class="comment">// Set report ID, this is needed for Move commands to work</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(my_bdaddr[0] != 0x00 || my_bdaddr[1] != 0x00 || my_bdaddr[2] != 0x00 || my_bdaddr[3] != 0x00 || my_bdaddr[4] != 0x00 || my_bdaddr[5] != 0x00) {</div>
@ -299,14 +299,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">setBdaddr</a>(my_bdaddr); <span class="comment">// Set internal Bluetooth address</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span>(int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; D_PrintHex&lt;uint8_t &gt; (my_bdaddr[i], 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; D_PrintHex&lt;uint8_t &gt; (my_bdaddr[0], 0x80);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; onInit();</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
@ -317,34 +317,34 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;Fail:</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
@ -369,9 +369,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 100) { <span class="comment">// Loop 100ms before processing data</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; readReport();</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"></span> printReport(); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the PS3 Controllers</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; printReport(); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the PS3 Controllers</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a>) { <span class="comment">// One can only set the color of the bulb, set the rumble, set and get the bluetooth address and calibrate the magnetometer via USB</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(millis() - timer &gt; 4000) { <span class="comment">// Send at least every 4th second</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; Move_Command(writeBuf, <a class="code" href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17">MOVE_REPORT_BUFFER_SIZE</a>); <span class="comment">// The Bulb and rumble values, has to be written again and again, for it to stay turned on</span></div>
@ -395,13 +395,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keywordtype">void</span> PS3USB::printReport() { <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the PS3 Controllers</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>; i++) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>; i++) {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201"> 315</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[(uint8_t)b]));</div>
@ -483,7 +483,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; strcpy_P(statusOutput, PSTR(<span class="stringliteral">&quot;Error&quot;</span>));</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a>.write((uint8_t*)statusOutput, strlen(statusOutput));</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a>.write(statusOutput);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment">/* Playstation Sixaxis Dualshock and Navigation Controller commands */</span></div>
@ -508,10 +508,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;}</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464"> 420</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode) {</div>
<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464"> 420</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode) {</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>((mode &amp; 0x30) &gt; 0x00) {</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; uint8_t power[2] = {0xff, 0x00}; <span class="comment">// Defaults to RumbleLow</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(mode == <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(mode == <a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; power[0] = 0x00;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; power[1] = 0xff;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
@ -599,16 +599,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; Move_Command(writeBuf, <a class="code" href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17">MOVE_REPORT_BUFFER_SIZE</a>);</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;}</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a9eeb0f71719732e44929c64f23c8314c"> 511</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color) { <span class="comment">// Use this to set the Color using the predefined colors in &quot;enums.h&quot;</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a9eeb0f71719732e44929c64f23c8314c"> 511</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color) { <span class="comment">// Use this to set the Color using the predefined colors in &quot;enums.h&quot;</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>((uint8_t)(color &gt;&gt; 16), (uint8_t)(color &gt;&gt; 8), (uint8_t)(color));</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;}</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a"> 515</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a>(uint8_t rumble) {</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rumble &lt; 64 &amp;&amp; rumble != 0) <span class="comment">// The rumble value has to at least 64, or approximately 25% (64/255*100)</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>(rumble &lt; 64 &amp;&amp; rumble != 0) <span class="comment">// The rumble value has to at least 64, or approximately 25% (64/255*100)</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe rumble value has to at least 64, or approximately 25%&quot;</span>), 0x80);</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"></span> writeBuf[6] = rumble; <span class="comment">// Set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; writeBuf[6] = rumble; <span class="comment">// Set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; Move_Command(writeBuf, <a class="code" href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17">MOVE_REPORT_BUFFER_SIZE</a>);</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;}</div>
@ -656,20 +656,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a>)</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a>);</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a>);</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">else</span> <span class="comment">// Dualshock 3 or Navigation controller</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;}</div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00146">PS3Enums.h:146</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00124">PS3Enums.h:124</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00476">PS3USB.cpp:476</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00139">PS3Enums.h:139</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00117">PS3Enums.h:117</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00439">PS3USB.cpp:439</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00273">PS3USB.h:273</a></div></div>
@ -677,27 +676,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_p_s3_u_s_b_8h_html_aca3cbaad8732d9185bb9bda1a32cd18d"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a></div><div class="ttdeci">#define PS3_INPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00033">PS3USB.h:33</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00029">controllerEnums.h:29</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00157">PS3Enums.h:157</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad50962ff6194746c076084ec0714605a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">PS3USB::setBdaddr</a></div><div class="ttdeci">void setBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00463">PS3USB.cpp:463</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00160">PS3Enums.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89df07d76648a48c1f0ef8fd9604c201"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00315">PS3USB.cpp:315</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html"><div class="ttname"><a href="_p_s3_u_s_b_8h.html">PS3USB.h</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0da271fcb10181b3ce15aefe76c259bb"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a></div><div class="ttdeci">#define PS3_OUTPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00032">PS3USB.h:32</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00271">PS3USB.h:271</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00143">PS3Enums.h:143</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00121">PS3Enums.h:121</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00119">PS3Enums.h:119</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00541">PS3USB.cpp:541</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6844111657a882b1997ca30d2649bd1c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00326">PS3USB.cpp:326</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa01170072ec7fd0e557959ea1d79011e"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">PS3USB::getSensor</a></div><div class="ttdeci">uint16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00334">PS3USB.cpp:334</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aaa1e66d7397be6364d4f76749cbaad5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00411">PS3USB.cpp:411</a></div></div>
@ -711,71 +710,72 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ae6276fa555fe14995bee0713be663333"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a></div><div class="ttdeci">#define PS3_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00031">PS3USB.h:31</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="settings_8h_html_a11b6e9d1bc9facf0772bda8ad763530c"><div class="ttname"><a href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a></div><div class="ttdeci">#define USB_HOST_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00024">settings.h:24</a></div></div>
<div class="ttc" id="settings_8h_html_a11b6e9d1bc9facf0772bda8ad763530c"><div class="ttname"><a href="settings_8h.html#a11b6e9d1bc9facf0772bda8ad763530c">USB_HOST_SERIAL</a></div><div class="ttdeci">#define USB_HOST_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00034">settings.h:34</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a87db50031f7e265baaa82365c14befae"><div class="ttname"><a href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="message_8h_html_a0ce3a725ee65614d7f95cda10e4d2e91"><div class="ttname"><a href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a></div><div class="ttdeci">#define NotifyFailUnknownDevice(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00054">message.h:54</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00502">PS3USB.cpp:502</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00144">PS3Enums.h:144</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00145">PS3Enums.h:145</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00122">PS3Enums.h:122</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00123">PS3Enums.h:123</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ad4d26e1c566064f2259faf65f0858b6e"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a></div><div class="ttdeci">#define EP_INTERRUPT</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00028">PS3USB.h:28</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a2c6c24a4b63d9a34926fb35d6b49cd17"><div class="ttname"><a href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17">MOVE_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define MOVE_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00040">PS3Enums.h:40</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1328a3f017f8d010cd0559c084981021"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00365">PS3USB.cpp:365</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac7adc7365bb45d15c37e22f26f012498"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00404">PS3USB.cpp:404</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00165">controllerEnums.h:165</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00192">controllerEnums.h:192</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="hid_8h_html_a73dbc093cd8c096054332fde410cd9ed"><div class="ttname"><a href="hid_8h.html#a73dbc093cd8c096054332fde410cd9ed">HID_REQUEST_GET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_GET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00069">hid.h:69</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7ba142ed3f585d034f29cc2c36fba0e9"><div class="ttname"><a href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a></div><div class="ttdeci">const uint8_t PS3_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00138">PS3Enums.h:138</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0de554815afcb66f57d8ac0045f19f2c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00330">PS3USB.cpp:330</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00277">PS3USB.h:277</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00114">PS3Enums.h:114</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ac306dfe7b0e1b3a3e9bb357aa7552dec"><div class="ttname"><a href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS3_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00092">PS3Enums.h:92</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00028">controllerEnums.h:28</a></div></div>
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00164">controllerEnums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00191">controllerEnums.h:191</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae5c5316b4c8dae5927b2a2721a28f6c0"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00338">PS3USB.cpp:338</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00515">PS3USB.cpp:515</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00158">PS3Enums.h:158</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00075">UsbCore.h:75</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00136">PS3Enums.h:136</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00048">PS3USB.h:48</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00281">PS3USB.h:281</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a77f44b6007cc735c47bdeaf672c7e464"><div class="ttname"><a href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00420">PS3USB.cpp:420</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00159">PS3Enums.h:159</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00137">PS3Enums.h:137</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00038">BTD.h:38</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a2b422a95d6f43756111dea6b6a9230ff"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff">bmREQ_HID_IN</a></div><div class="ttdeci">#define bmREQ_HID_IN</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00043">PS3USB.h:43</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00067">controllerEnums.h:67</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3ad10dc81cfca1bdeb2f1310ddf4419d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">PS3USB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00449">PS3USB.cpp:449</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00164">PS3Enums.h:164</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00279">PS3USB.h:279</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00525">PS3USB.cpp:525</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a4898fccf5d2aa053bc67894aa3627e0f"><div class="ttname"><a href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define PS3_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00131">controllerEnums.h:131</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00047">controllerEnums.h:47</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00210">UsbCore.h:210</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac919404d4caf4625467756272f8d5502"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a></div><div class="ttdeci">PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00023">PS3USB.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00551">PS3USB.cpp:551</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00147">PS3Enums.h:147</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad0887b415c3ba180789781a713d98be8"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00361">PS3USB.cpp:361</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
@ -787,7 +787,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3USB.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,21 +92,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS3USB.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS3USB.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_u_s_b_8h__incl.png" border="0" usemap="#_p_s3_u_s_b_8h" alt=""/></div>
<map name="_p_s3_u_s_b_8h" id="_p_s3_u_s_b_8h">
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,83,61,111"/><area shape="rect" id="node3" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,83,184,111"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,161,199,189"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/><area shape="rect" id="node3" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,79,184,104"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,152,199,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_u_s_b_8h__dep__incl.png" border="0" usemap="#_p_s3_u_s_b_8hdep" alt=""/></div>
<map name="_p_s3_u_s_b_8hdep" id="_p_s3_u_s_b_8hdep">
<area shape="rect" id="node2" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="5,83,104,111"/></map>
<area shape="rect" id="node2" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="5,79,104,104"/></map>
</div>
</div>
<p><a href="_p_s3_u_s_b_8h_source.html">Go to the source code of this file.</a></p>
@ -349,7 +349,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,3 +1,3 @@
<map id="PS3USB.h" name="PS3USB.h">
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="5,83,104,111"/>
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="5,79,104,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1,5 +1,5 @@
<map id="PS3USB.h" name="PS3USB.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,83,61,111"/>
<area shape="rect" id="node3" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,83,184,111"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,161,199,189"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/>
<area shape="rect" id="node3" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="85,79,184,104"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="70,152,199,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS3USB.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,37 +107,37 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps3usb_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps3usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps3usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s3_enums_8h.html">PS3Enums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/* PS3 data taken from descriptors */</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0"> 25</a></span>&#160;<span class="preprocessor">#define EP_MAXPKTSIZE 64 // max size for data via USB</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/* Endpoint types */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e"> 28</a></span>&#160;<span class="preprocessor">#define EP_INTERRUPT 0x03</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/* Names we give to the 3 ps3 pipes - this is only used for setting the bluetooth address into the ps3 controllers */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333"> 31</a></span>&#160;<span class="preprocessor">#define PS3_CONTROL_PIPE 0</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_OUTPUT_PIPE 1</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d"> 33</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_INPUT_PIPE 2</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb"> 32</a></span>&#160;<span class="preprocessor">#define PS3_OUTPUT_PIPE 1</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d"> 33</a></span>&#160;<span class="preprocessor">#define PS3_INPUT_PIPE 2</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">//PID and VID of the different devices</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514"> 36</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 37</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632"> 38</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 39</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 37</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632"> 38</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 39</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a5bd4ea095da29635414952894bd527f5"> 42</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmREQ_HID_IN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a2b422a95d6f43756111dea6b6a9230ff"> 43</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_IN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a73dbc093cd8c096054332fde410cd9ed"> 45</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_GET_REPORT 0x01</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 46</a></span>&#160;<span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862"> 48</a></span>&#160;<span class="preprocessor">#define PS3_MAX_ENDPOINTS 3</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_u_s_b.html">PS3USB</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB</a>(<a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">setAllOff</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">setRumbleOff</a>();</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(uint8_t value);</div>
@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e"> 263</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
@ -228,7 +228,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> Move_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00476">PS3USB.cpp:476</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html"><div class="ttname"><a href="class_p_s3_u_s_b.html">PS3USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00058">PS3USB.h:58</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00439">PS3USB.cpp:439</a></div></div>
@ -238,9 +237,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89df07d76648a48c1f0ef8fd9604c201"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00315">PS3USB.cpp:315</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00271">PS3USB.h:271</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00135">PS3Enums.h:135</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00113">PS3Enums.h:113</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00541">PS3USB.cpp:541</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6844111657a882b1997ca30d2649bd1c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00326">PS3USB.cpp:326</a></div></div>
@ -251,6 +250,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a04b79c271ca14e1e095c6e305c672627"><div class="ttname"><a href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">PS3USB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00093">PS3USB.h:93</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad06a172d85adf4ffc54dd8117b0be42e"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">PS3USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00263">PS3USB.h:263</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a87db50031f7e265baaa82365c14befae"><div class="ttname"><a href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00502">PS3USB.cpp:502</a></div></div>
@ -258,12 +258,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1328a3f017f8d010cd0559c084981021"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00365">PS3USB.cpp:365</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac7adc7365bb45d15c37e22f26f012498"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00404">PS3USB.cpp:404</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00037">PS3USB.h:37</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0de554815afcb66f57d8ac0045f19f2c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00330">PS3USB.cpp:330</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00277">PS3USB.h:277</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00114">PS3Enums.h:114</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00164">controllerEnums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00191">controllerEnums.h:191</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae5c5316b4c8dae5927b2a2721a28f6c0"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00338">PS3USB.cpp:338</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00515">PS3USB.cpp:515</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
@ -277,8 +277,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_p_s3_u_s_b_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00036">PS3USB.h:36</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00279">PS3USB.h:279</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00525">PS3USB.cpp:525</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00131">controllerEnums.h:131</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac919404d4caf4625467756272f8d5502"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a></div><div class="ttdeci">PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00023">PS3USB.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00551">PS3USB.cpp:551</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad0887b415c3ba180789781a713d98be8"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00361">PS3USB.cpp:361</a></div></div>
@ -289,7 +289,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4BT.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -91,14 +91,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS4BT.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4BT.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_b_t_8h__incl.png" border="0" usemap="#_p_s4_b_t_8h" alt=""/></div>
<map name="_p_s4_b_t_8h" id="_p_s4_b_t_8h">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,83,164,111"/><area shape="rect" id="node8" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,83,304,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="90,161,165,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="96,393,152,421"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="103,238,152,266"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,315,217,343"/><area shape="rect" id="node9" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,161,421,189"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,79,164,104"/><area shape="rect" id="node8" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,79,304,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="90,152,166,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="96,372,152,397"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="103,225,153,251"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,299,219,324"/><area shape="rect" id="node9" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,152,422,177"/></map>
</div>
</div>
<p><a href="_p_s4_b_t_8h_source.html">Go to the source code of this file.</a></p>
@ -113,7 +113,7 @@ Classes</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,10 +1,10 @@
<map id="PS4BT.h" name="PS4BT.h">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,83,164,111"/>
<area shape="rect" id="node8" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,83,304,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="90,161,165,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="96,393,152,421"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="103,238,152,266"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,315,217,343"/>
<area shape="rect" id="node9" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,161,421,189"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="92,79,164,104"/>
<area shape="rect" id="node8" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="208,79,304,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,225,64,251"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="90,152,166,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="96,372,152,397"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="103,225,153,251"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="118,299,219,324"/>
<area shape="rect" id="node9" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="293,152,422,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4BT.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,8 +107,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps4bt_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps4bt_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps4bt_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_h_i_d_8h.html">BTHID.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s4_parser_8h.html">PS4Parser.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
@ -128,35 +128,92 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; };</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a9f9e18bee9e7d9cf6538681e0370193f"> 65</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a9f9e18bee9e7d9cf6538681e0370193f">ParseBTHID</a>(<a class="code" href="class_b_t_h_i_d.html">BTHID</a> *bthid, uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(len, buf);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b"> 74</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; };</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">ResetBTHID</a>() {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00260">PS4Parser.h:260</a></div></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512"> 64</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">ParseBTHIDData</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(len, buf);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b"> 73</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">OnInitBTHID</a>() {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; enable_sixaxis(); <span class="comment">// Make the controller send out the entire output report</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">setLed</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827"> 83</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">ResetBTHID</a>() {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062"> 89</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">sendOutputReport</a>(<a class="code" href="struct_p_s4_output.html">PS4Output</a> *output) { <span class="comment">// Source: https://github.com/chrippa/ds4drv</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; uint8_t buf[79];</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; memset(buf, 0, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; buf[0] = 0x52; <span class="comment">// HID BT Set_report (0x50) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; buf[1] = 0x11; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buf[2] = 0x80;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; buf[4]= 0xFF;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; buf[7] = output-&gt;<a class="code" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">smallRumble</a>; <span class="comment">// Small Rumble</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; buf[8] = output-&gt;<a class="code" href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">bigRumble</a>; <span class="comment">// Big rumble</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; buf[9] = output-&gt;<a class="code" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">r</a>; <span class="comment">// Red</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; buf[10] = output-&gt;<a class="code" href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">g</a>; <span class="comment">// Green</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; buf[11] = output-&gt;<a class="code" href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">b</a>; <span class="comment">// Blue</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; buf[12] = output-&gt;<a class="code" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">flashOn</a>; <span class="comment">// Time to flash bright (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; buf[13] = output-&gt;<a class="code" href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">flashOff</a>; <span class="comment">// Time to flash dark (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; output-&gt;<a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// The PS4 console actually set the four last bytes to a CRC32 checksum, but it seems like it is actually not needed</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; HID_Command(buf, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; };</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> enable_sixaxis() { <span class="comment">// Command used to make the PS4 controller send out the entire output report</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint8_t buf[2];</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; buf[0] = 0x43; <span class="comment">// HID BT Get_report (0x40) | Report Type (Feature 0x03)</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; buf[1] = 0x02; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; HID_Command(buf, 2);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t *data, uint8_t nbytes) {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">pBtd</a>-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(<a class="code" href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">hci_handle</a>, data, nbytes, <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[0], <a class="code" href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">control_scid</a>[1]);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; };</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;};</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00369">PS4Parser.h:369</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a9f9e18bee9e7d9cf6538681e0370193f"><div class="ttname"><a href="class_p_s4_b_t.html#a9f9e18bee9e7d9cf6538681e0370193f">PS4BT::ParseBTHID</a></div><div class="ttdeci">virtual void ParseBTHID(BTHID *bthid, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00065">PS4BT.h:65</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a237a65d5e6deff4a2ef1ca97c7383777"><div class="ttname"><a href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">PS4Output::b</a></div><div class="ttdeci">uint8_t b</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3f709524b0303086591d81bd238e62e8"><div class="ttname"><a href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">PS4Parser::setLed</a></div><div class="ttdeci">void setLed(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00333">PS4Parser.h:333</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a08a857b8533e59f6eb872e4c8f727405"><div class="ttname"><a href="class_p_s4_b_t.html#a08a857b8533e59f6eb872e4c8f727405">PS4BT::connected</a></div><div class="ttdeci">bool connected()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00045">PS4BT.h:45</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a4abdb9a24e512f7f2bad16df28b2fcab"><div class="ttname"><a href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">PS4Output::flashOn</a></div><div class="ttdeci">uint8_t flashOn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html"><div class="ttname"><a href="struct_p_s4_output.html">PS4Output</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a63c57ecc5c678da13e7787792e385ec9"><div class="ttname"><a href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9">PS4BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00053">PS4BT.h:53</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00076">PS4Parser.cpp:76</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_acf6933a4988ed9f48c6e08cc7c9b906c"><div class="ttname"><a href="class_b_t_h_i_d.html#acf6933a4988ed9f48c6e08cc7c9b906c">BTHID::control_scid</a></div><div class="ttdeci">uint8_t control_scid[2]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00136">BTHID.h:136</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_afc78d4e2c0aafbf4b0a27db3746ad93c"><div class="ttname"><a href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">PS4Output::g</a></div><div class="ttdeci">uint8_t g</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_aff395d1c46c9016ab4ea8ddbf034788b"><div class="ttname"><a href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">PS4Output::reportChanged</a></div><div class="ttdeci">bool reportChanged</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html"><div class="ttname"><a href="_b_t_h_i_d_8h.html">BTHID.h</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a76a85e749899e2e6cb135a6ec6acabb3"><div class="ttname"><a href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">PS4Output::r</a></div><div class="ttdeci">uint8_t r</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a0d92689d0c24e62ddc7a1b3c4c658512"><div class="ttname"><a href="class_p_s4_b_t.html#a0d92689d0c24e62ddc7a1b3c4c658512">PS4BT::ParseBTHIDData</a></div><div class="ttdeci">virtual void ParseBTHIDData(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00064">PS4BT.h:64</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_ac9e9e57cfce3e7b9588abb273bd908ec"><div class="ttname"><a href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">PS4Output::bigRumble</a></div><div class="ttdeci">uint8_t bigRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a3f4dcb81acca1475402b93ac851b7be8"><div class="ttname"><a href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">PS4Output::flashOff</a></div><div class="ttdeci">uint8_t flashOff</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a02c37811a4a401618caf188e744e8e3d"><div class="ttname"><a href="class_b_t_h_i_d.html#a02c37811a4a401618caf188e744e8e3d">BTHID::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00129">BTHID.h:129</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a8c6030198733f66a5cb96b8a49e07618"><div class="ttname"><a href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">PS4Output::smallRumble</a></div><div class="ttdeci">uint8_t smallRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html"><div class="ttname"><a href="_p_s4_parser_8h.html">PS4Parser.h</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a4b1c9e15ccdc7ab24f7fb42fc9b5d827"><div class="ttname"><a href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">PS4BT::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00080">PS4BT.h:80</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00136">PS4Parser.h:136</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a8e4888359cda09bc7123d971bb9d8dcf"><div class="ttname"><a href="class_b_t_h_i_d.html#a8e4888359cda09bc7123d971bb9d8dcf">BTHID::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00132">BTHID.h:132</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_ad3bb50902905677726bd62d5f394b062"><div class="ttname"><a href="class_p_s4_b_t.html#ad3bb50902905677726bd62d5f394b062">PS4BT::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00089">PS4BT.h:89</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a4b1c9e15ccdc7ab24f7fb42fc9b5d827"><div class="ttname"><a href="class_p_s4_b_t.html#a4b1c9e15ccdc7ab24f7fb42fc9b5d827">PS4BT::ResetBTHID</a></div><div class="ttdeci">virtual void ResetBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00083">PS4BT.h:83</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a616d5167f795b14c5955910807b5024b"><div class="ttname"><a href="class_p_s4_b_t.html#a616d5167f795b14c5955910807b5024b">PS4BT::PS4BT</a></div><div class="ttdeci">PS4BT(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00036">PS4BT.h:36</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a91088a6ed093d3cebb82d8f5e208304b"><div class="ttname"><a href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">PS4BT::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00074">PS4BT.h:74</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a91088a6ed093d3cebb82d8f5e208304b"><div class="ttname"><a href="class_p_s4_b_t.html#a91088a6ed093d3cebb82d8f5e208304b">PS4BT::OnInitBTHID</a></div><div class="ttdeci">virtual void OnInitBTHID()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00073">PS4BT.h:73</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01190">BTD.cpp:1190</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00095">BTHID.h:95</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html"><div class="ttname"><a href="class_p_s4_b_t.html">PS4BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00028">PS4BT.h:28</a></div></div>
@ -165,7 +222,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4Parser.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS4Parser.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4Parser.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_parser_8cpp__incl.png" border="0" usemap="#_p_s4_parser_8cpp" alt=""/></div>
<map name="_p_s4_parser_8cpp" id="_p_s4_parser_8cpp">
<area shape="rect" id="node2" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="43,83,139,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/></map>
<area shape="rect" id="node2" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="43,79,139,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/></map>
</div>
</div>
<p><a href="_p_s4_parser_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for PS4Parser.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,5 +1,5 @@
<map id="PS4Parser.cpp" name="PS4Parser.cpp">
<area shape="rect" id="node2" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="43,83,139,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/>
<area shape="rect" id="node2" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="43,79,139,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4Parser.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -127,120 +127,114 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906"> 38</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906">PS4Parser::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (b &lt;= <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>) <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> checkDpad(b);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint8_t index = button &lt; 8 ? 0 : button &lt; 16 ? 1 : 2;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint8_t mask = 1 &lt;&lt; (button - 8 * index);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp; mask;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c"> 49</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint8_t mask, index = 0;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (b &lt;= <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>) <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; mask = 1 &lt;&lt; b;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; index = button &lt; 8 ? 0 : button &lt; 16 ? 1 : 2;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; mask = 1 &lt;&lt; (button - 8 * index);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> click = buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp; mask;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp;= ~mask; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (b &lt;= <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>) <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> checkDpad(b);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; (1UL &lt;&lt; pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c"> 45</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint32_t mask = 1UL &lt;&lt; pgm_read_byte(&amp;<a class="code" href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">bool</span> click = buttonClickState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; mask;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp;= ~mask; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a"> 52</a></span>&#160;uint8_t <a class="code" href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">PS4Parser::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are the only analog buttons on the controller</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[0];</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[1];</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c"> 60</a></span>&#160;uint8_t <a class="code" href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">PS4Parser::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[(uint8_t)a];</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a"> 64</a></span>&#160;uint8_t <a class="code" href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">PS4Parser::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are the only analog buttons on the controller</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[0];</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[1];</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c"> 72</a></span>&#160;uint8_t <a class="code" href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">PS4Parser::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[(uint8_t)a];</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622"> 76</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (len &gt; 0 &amp;&amp; buf) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; len; i++) {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[i], 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; memcpy(&amp;ps4Data, buf, min(len, <span class="keyword">sizeof</span>(ps4Data)));</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span> (ps4Data.<a class="code" href="struct_p_s4_data.html#aa61155e1874519285f4893430480b48d">reportId</a> != 0x01) {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown report id&quot;</span>), 0x80);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>); i++) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] != oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i]) { <span class="comment">// Check if anything has changed</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] &amp; ~oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i]; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i];</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (i == 0) { <span class="comment">// The DPAD buttons does not set the different bits, but set a value corresponding to the buttons pressed, we will simply set the bits ourself</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint8_t newDpad = 0;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a>))</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a>))</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a>))</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>))</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (newDpad != oldDpad) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = newDpad &amp; ~oldDpad; <span class="comment">// Override values</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; oldDpad = newDpad;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00115">PS4Parser.h:115</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa004cc456c79269dec99a9eed667484d"><div class="ttname"><a href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">PS4Data::hatValue</a></div><div class="ttdeci">uint8_t hatValue[4]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00091">PS4Parser.h:91</a></div></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622"> 64</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a>(uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (len &gt; 0 &amp;&amp; buf) {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; len; i++) {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[i], 0x80);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (buf[0] == 0x01) <span class="comment">// Check report ID</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; memcpy(&amp;ps4Data, buf + 1, min(len - 1, <span class="keyword">sizeof</span>(ps4Data)));</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (buf[0] == 0x11) <span class="comment">// This report is send via Bluetooth, it has an offset of 2 compared to the USB data</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; memcpy(&amp;ps4Data, buf + 3, min(len - 3, <span class="keyword">sizeof</span>(ps4Data)));</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown report id: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[0], 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> != oldButtonState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a>) { <span class="comment">// Check if anything has changed</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> &amp; ~oldButtonState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a>; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// The DPAD buttons does not set the different bits, but set a value corresponding to the buttons pressed, we will simply set the bits ourself</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t newDpad = 0;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a>))</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a>))</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a>))</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>))</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; newDpad |= 1 &lt;&lt; <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (newDpad != oldDpad) {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = newDpad &amp; ~oldDpad; <span class="comment">// Override values</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; oldDpad = newDpad;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (ps4Output.<a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a>)</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_p_s4_parser.html#a8788530b0c213dedfcf56b78e8ca4879">sendOutputReport</a>(&amp;ps4Output); <span class="comment">// Send output report</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00127">PS4Parser.h:127</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_aa381b471d6e5f1e36fa87048b0f8ddc9"><div class="ttname"><a href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">PS4Buttons::val</a></div><div class="ttdeci">uint32_t val</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00071">PS4Parser.h:71</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00126">PS4Parser.h:126</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa004cc456c79269dec99a9eed667484d"><div class="ttname"><a href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">PS4Data::hatValue</a></div><div class="ttdeci">uint8_t hatValue[4]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00094">PS4Parser.h:94</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ad352f30e4ab772246574bbf654248906"><div class="ttname"><a href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906">PS4Parser::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00038">PS4Parser.cpp:38</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00114">PS4Parser.h:114</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00048">controllerEnums.h:48</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00049">controllerEnums.h:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00128">PS4Parser.h:128</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00075">controllerEnums.h:75</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00076">controllerEnums.h:76</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00076">PS4Parser.cpp:76</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a0cb061ca058b493218c01eb1ada1af00"><div class="ttname"><a href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">PS4Buttons::val</a></div><div class="ttdeci">uint8_t val[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00071">PS4Parser.h:71</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aad2133de0113cee402cda4a8c7e8b6a5"><div class="ttname"><a href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">PS4Data::trigger</a></div><div class="ttdeci">uint8_t trigger[2]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00093">PS4Parser.h:93</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00050">controllerEnums.h:50</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_aff395d1c46c9016ab4ea8ddbf034788b"><div class="ttname"><a href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">PS4Output::reportChanged</a></div><div class="ttdeci">bool reportChanged</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aad2133de0113cee402cda4a8c7e8b6a5"><div class="ttname"><a href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">PS4Data::trigger</a></div><div class="ttdeci">uint8_t trigger[2]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00096">PS4Parser.h:96</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00077">controllerEnums.h:77</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00129">PS4Parser.h:129</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a7e95303156f31f965a09cc2d3877b524"><div class="ttname"><a href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a></div><div class="ttdeci">const uint8_t PS4_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00025">PS4Parser.h:25</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00082">controllerEnums.h:82</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a8788530b0c213dedfcf56b78e8ca4879"><div class="ttname"><a href="class_p_s4_parser.html#a8788530b0c213dedfcf56b78e8ca4879">PS4Parser::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)=0</div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html"><div class="ttname"><a href="_p_s4_parser_8h.html">PS4Parser.h</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99e2971b4e511a8d1bb718408f559a92"><div class="ttname"><a href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">PS4Buttons::dpad</a></div><div class="ttdeci">uint8_t dpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00052">PS4Parser.h:52</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa61155e1874519285f4893430480b48d"><div class="ttname"><a href="struct_p_s4_data.html#aa61155e1874519285f4893430480b48d">PS4Data::reportId</a></div><div class="ttdeci">uint8_t reportId</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00090">PS4Parser.h:90</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00113">PS4Parser.h:113</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a66151c4e4601f80492cd5b2451a2f87a"><div class="ttname"><a href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">PS4Parser::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00092">PS4Parser.h:92</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a92a4ea3d328426b9f86be05cabaad91c"><div class="ttname"><a href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00049">PS4Parser.cpp:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00083">controllerEnums.h:83</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a9b11c5b27f9c9501fdb4f616cb3b194c"><div class="ttname"><a href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">PS4Parser::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00072">PS4Parser.cpp:72</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00124">PS4Parser.h:124</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00131">PS4Parser.h:131</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00130">PS4Parser.h:130</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a66151c4e4601f80492cd5b2451a2f87a"><div class="ttname"><a href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">PS4Parser::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00052">PS4Parser.cpp:52</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00095">PS4Parser.h:95</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a92a4ea3d328426b9f86be05cabaad91c"><div class="ttname"><a href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00045">PS4Parser.cpp:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00110">controllerEnums.h:110</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a9b11c5b27f9c9501fdb4f616cb3b194c"><div class="ttname"><a href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">PS4Parser::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00060">PS4Parser.cpp:60</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00078">controllerEnums.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4Parser.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -93,21 +93,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS4Parser.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4Parser.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_parser_8h__incl.png" border="0" usemap="#_p_s4_parser_8h" alt=""/></div>
<map name="_p_s4_parser_8h" id="_p_s4_parser_8h">
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,83,61,111"/><area shape="rect" id="node3" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,83,213,111"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/><area shape="rect" id="node3" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,79,214,104"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_parser_8h__dep__incl.png" border="0" usemap="#_p_s4_parser_8hdep" alt=""/></div>
<map name="_p_s4_parser_8hdep" id="_p_s4_parser_8hdep">
<area shape="rect" id="node2" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="5,83,77,111"/><area shape="rect" id="node3" href="_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="102,83,212,111"/><area shape="rect" id="node4" href="_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="236,83,320,111"/></map>
<area shape="rect" id="node2" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="5,79,79,104"/><area shape="rect" id="node3" href="_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="103,79,213,104"/><area shape="rect" id="node4" href="_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="237,79,322,104"/></map>
</div>
</div>
<p><a href="_p_s4_parser_8h_source.html">Go to the source code of this file.</a></p>
@ -118,26 +118,30 @@ Classes</h2></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="structtouchpad_x_y.html">touchpadXY</a></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="struct_p_s4_status.html">PS4Status</a></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="struct_p_s4_data.html">PS4Data</a></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="struct_p_s4_output.html">PS4Output</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_s4_parser.html">PS4Parser</a></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="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3eca256e8b59574c290177d7df302a62"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> { <br/>
<tr class="memitem:a3eca256e8b59574c290177d7df302a62"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> { <br />
&#160;&#160;<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a> = 0x0,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a> = 0x1,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a> = 0x2,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a> = 0x3,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a> = 0x4,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a> = 0x5,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a> = 0x6,
<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a> = 0x7,
<br/>
<br />
&#160;&#160;<a class="el" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a> = 0x8
<br/>
<br />
}</td></tr>
<tr class="separator:a3eca256e8b59574c290177d7df302a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@ -157,27 +161,27 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"></a>DPAD_UP</em>&#160;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"></a>DPAD_UP&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"></a>DPAD_UP_RIGHT</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"></a>DPAD_UP_RIGHT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"></a>DPAD_RIGHT</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"></a>DPAD_RIGHT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"></a>DPAD_RIGHT_DOWN</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"></a>DPAD_RIGHT_DOWN&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"></a>DPAD_DOWN</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"></a>DPAD_DOWN&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"></a>DPAD_DOWN_LEFT</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"></a>DPAD_DOWN_LEFT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"></a>DPAD_LEFT</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"></a>DPAD_LEFT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"></a>DPAD_LEFT_UP</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"></a>DPAD_LEFT_UP&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"></a>DPAD_OFF</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"></a>DPAD_OFF&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s4_parser_8h_source.html#l00112">112</a> of file <a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s4_parser_8h_source.html#l00123">123</a> of file <a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>.</p>
</div>
</div>
@ -215,10 +219,10 @@ Variables</h2></td></tr>
<div class="line"> 0x10, </div>
<div class="line"> 0x11, </div>
<div class="line">}</div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00048">controllerEnums.h:48</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00049">controllerEnums.h:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00050">controllerEnums.h:50</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00075">controllerEnums.h:75</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00076">controllerEnums.h:76</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00077">controllerEnums.h:77</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00078">controllerEnums.h:78</a></div></div>
</div><!-- fragment --><p>Buttons on the controller </p>
<p>Definition at line <a class="el" href="_p_s4_parser_8h_source.html#l00025">25</a> of file <a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>.</p>
@ -230,7 +234,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,5 +1,5 @@
<map id="PS4Parser.h" name="PS4Parser.h">
<area shape="rect" id="node2" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="5,83,77,111"/>
<area shape="rect" id="node3" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="102,83,212,111"/>
<area shape="rect" id="node4" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="236,83,320,111"/>
<area shape="rect" id="node2" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="5,79,79,104"/>
<area shape="rect" id="node3" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="103,79,213,104"/>
<area shape="rect" id="node4" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="237,79,322,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -1,4 +1,4 @@
<map id="PS4Parser.h" name="PS4Parser.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,83,61,111"/>
<area shape="rect" id="node3" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,83,213,111"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,79,61,104"/>
<area shape="rect" id="node3" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,79,214,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4Parser.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,8 +107,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps4parser_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps4parser_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps4parser_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
@ -156,232 +156,317 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9"> 67</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9">ps</a> : 1;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a785305478e29a078003c360babb50ab0"> 68</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a785305478e29a078003c360babb50ab0">touchpad</a> : 1;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a936ab414f4e60f0264945622d9aa1aea"> 69</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a936ab414f4e60f0264945622d9aa1aea">timestamp</a> : 6; <span class="comment">// Only available via USB</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00"> 71</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[3];</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a5c27c151ad76a3675dce1eda1a3e4cc4"> 69</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a5c27c151ad76a3675dce1eda1a3e4cc4">reportCounter</a> : 6;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9"> 71</a></span>&#160; uint32_t <a class="code" href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">val</a> : 24;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structtouchpad_x_y.html">touchpadXY</a> {</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#aad3a6094ac41933907969856dfb93e15"> 75</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#aad3a6094ac41933907969856dfb93e15">dummy</a>; <span class="comment">// I can not figure out what this data is for, it seems to change randomly, maybe a timestamp?</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0"> 78</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">counter</a> : 7; <span class="comment">// Increments every time a finger is touching the touchpad</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5"> 79</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touching</a> : 1; <span class="comment">// The top bit is cleared if the finger is touching the touchpad</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5"> 82</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">x</a> : 12;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae"> 83</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">y</a> : 12;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[2]; <span class="comment">// 0 = first finger, 1 = second finger</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_p_s4_data.html">PS4Data</a> {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">/* Button and joystick values */</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aa61155e1874519285f4893430480b48d"> 90</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aa61155e1874519285f4893430480b48d">reportId</a>; <span class="comment">// Always 0x01</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d"> 91</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[4];</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3"> 92</a></span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> <a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5"> 93</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[2];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// I still need to figure out how to make the PS4 controller send out the rest of the data via Bluetooth</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">/* Gyro and accelerometer values */</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9"> 98</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9">dummy</a>[3]; <span class="comment">// First two looks random, while the third one might be some kind of status - it increments once in a while</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c"> 99</a></span>&#160; int16_t <a class="code" href="struct_p_s4_data.html#a2c7c9d0313863ab69e7cafdd79b7492c">gyroY</a>, <a class="code" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">gyroZ</a>, <a class="code" href="struct_p_s4_data.html#a0535a4a38dc250250fbf253e6bea53dc">gyroX</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca"> 100</a></span>&#160; int16_t <a class="code" href="struct_p_s4_data.html#a7e4ebbf1e22d59d3d7126bd1d56ee9b4">accX</a>, <a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>, <a class="code" href="struct_p_s4_data.html#a8cbe113c7f536bd0c47704d957a97d54">accY</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">/* The rest is data for the touchpad */</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#ae084b9b30d75bf86aa29b7c537297e55"> 103</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#ae084b9b30d75bf86aa29b7c537297e55">dummy2</a>[9]; <span class="comment">// Byte 5 looks like some kind of status (maybe battery status), bit 1 of byte 8 is set every time a finger is moving around the touchpad</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56"> 104</a></span>&#160; <a class="code" href="structtouchpad_x_y.html">touchpadXY</a> <a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[3]; <span class="comment">// It looks like it sends out three coordinates each time, this is possible because the microcontroller inside the PS4 controller is much faster than the Bluetooth connection.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// The last data is read from the last position in the array while the oldest measurement is from the first position.</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// The first position will also keep it&#39;s value after the finger is released, while the other two will set them to zero.</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Note that if you read fast enough from the device, then only the first one will contain any data.</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// The last three bytes are always: 0x00, 0x80, 0x00</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;};</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62"> 112</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> {</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"> 113</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a> = 0x0,</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"> 114</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a> = 0x1,</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"> 115</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a> = 0x2,</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"> 116</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a> = 0x3,</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"> 117</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a> = 0x4,</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"> 118</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a> = 0x5,</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"> 119</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a> = 0x6,</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"> 120</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a> = 0x7,</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"> 121</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a> = 0x8,</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html"> 125</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s4_parser.html">PS4Parser</a> {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf"> 128</a></span>&#160; <a class="code" href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf">PS4Parser</a>() {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">Reset</a>();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493"> 174</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">getX</a>(uint8_t finger = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[xyId].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[finger].<a class="code" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">x</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; };</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a"> 186</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">getY</a>(uint8_t finger = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[xyId].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[finger].<a class="code" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">y</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; };</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade"> 198</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">isTouching</a>(uint8_t finger = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> !(ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[xyId].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[finger].<a class="code" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touching</a>); <span class="comment">// The bit is cleared when a finger is touching the touchpad</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; };</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88"> 210</a></span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">getTouchCounter</a>(uint8_t finger = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[xyId].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[finger].<a class="code" href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">counter</a>;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; };</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888"> 219</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(a == <a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a>)</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> (atan2(ps4Data.<a class="code" href="struct_p_s4_data.html#a8cbe113c7f536bd0c47704d957a97d54">accY</a>, ps4Data.<a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> (atan2(ps4Data.<a class="code" href="struct_p_s4_data.html#a7e4ebbf1e22d59d3d7126bd1d56ee9b4">accX</a>, ps4Data.<a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; };</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a"> 231</a></span>&#160; int16_t <a class="code" href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> s) {</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">switch</span>(s) {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a">gX</a>:</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a0535a4a38dc250250fbf253e6bea53dc">gyroX</a>;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af">gY</a>:</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a2c7c9d0313863ab69e7cafdd79b7492c">gyroY</a>;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a>:</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">gyroZ</a>;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a>:</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a7e4ebbf1e22d59d3d7126bd1d56ee9b4">accX</a>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a>:</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a8cbe113c7f536bd0c47704d957a97d54">accY</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a>:</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; };</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">Parse</a>(uint8_t len, uint8_t *buf);</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0"> 77</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">counter</a> : 7; <span class="comment">// Increments every time a finger is touching the touchpad</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5"> 78</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touching</a> : 1; <span class="comment">// The top bit is cleared if the finger is touching the touchpad</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5"> 79</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">x</a> : 12;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae"> 80</a></span>&#160; uint16_t <a class="code" href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">y</a> : 12;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } __attribute__((packed)) <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>[2]; <span class="comment">// 0 = first finger, 1 = second finger</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html"> 84</a></span>&#160;struct <a class="code" href="struct_p_s4_status.html">PS4Status</a> {</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html#af37fc91df68a3ec4fbba6409747b5e29"> 85</a></span>&#160; uint8_t battery : 4;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html#a3e7fc4ece250c83c7753e3f557f6d710"> 86</a></span>&#160; uint8_t usb : 1;</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html#a21781405f5b603ef41334a1b09930075"> 87</a></span>&#160; uint8_t audio : 1;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html#a1d752bdc67f08a09fbb8feb6a0db5568"> 88</a></span>&#160; uint8_t mic : 1;</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_p_s4_status.html#a7c4913f2d99ed560d2a26b81b6bbe306"> 89</a></span>&#160; uint8_t <a class="code" href="cdcprolific_8h.html#a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe">unknown</a> : 1; <span class="comment">// Extension port?</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html"> 92</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_p_s4_data.html">PS4Data</a> {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">/* Button and joystick values */</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d"> 94</a></span>&#160; uint8_t hatValue[4];</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3"> 95</a></span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> <a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5"> 96</a></span>&#160; uint8_t trigger[2];</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">/* Gyro and accelerometer values */</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9"> 99</a></span>&#160; uint8_t <a class="code" href="structtouchpad_x_y.html#aad3a6094ac41933907969856dfb93e15">dummy</a>[3]; <span class="comment">// First two looks random, while the third one might be some kind of status - it increments once in a while</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c"> 100</a></span>&#160; int16_t gyroY, <a class="code" href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">gyroZ</a>, gyroX;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca"> 101</a></span>&#160; int16_t accX, <a class="code" href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">accZ</a>, accY;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a1135843ae5c396792eee84d1f2254ccc"> 103</a></span>&#160; uint8_t dummy2[5];</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a5ae56786b72dca582f490eb0d895d8c7"> 104</a></span>&#160; <a class="code" href="struct_p_s4_status.html">PS4Status</a> <a class="code" href="struct_p_s4_data.html#a5ae56786b72dca582f490eb0d895d8c7">status</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#ae8342b8249be90f258685928695dd726"> 105</a></span>&#160; uint8_t dummy3[3];</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">/* The rest is data for the touchpad */</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56"> 108</a></span>&#160; <a class="code" href="structtouchpad_x_y.html">touchpadXY</a> xy[3]; <span class="comment">// It looks like it sends out three coordinates each time, this might be because the microcontroller inside the PS4 controller is much faster than the Bluetooth connection.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// The last data is read from the last position in the array while the oldest measurement is from the first position.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// The first position will also keep it&#39;s value after the finger is released, while the other two will set them to zero.</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Note that if you read fast enough from the device, then only the first one will contain any data.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// The last three bytes are always: 0x00, 0x80, 0x00</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_p_s4_output.html"> 116</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_p_s4_output.html">PS4Output</a> {</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618"> 117</a></span>&#160; uint8_t bigRumble, <a class="code" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">smallRumble</a>; <span class="comment">// Rumble</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3"> 118</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">r</a>, g, b; <span class="comment">// RGB</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab"> 119</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">flashOn</a>, flashOff; <span class="comment">// Time to flash bright/dark (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b"> 120</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a>; <span class="comment">// The data is send when data is received from the controller</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} __attribute__((packed));</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62"> 123</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> {</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"> 124</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a> = 0x0,</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"> 125</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a> = 0x1,</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"> 126</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a> = 0x2,</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"> 127</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a> = 0x3,</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"> 128</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a> = 0x4,</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"> 129</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a> = 0x5,</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"> 130</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a> = 0x6,</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"> 131</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a> = 0x7,</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"> 132</a></span>&#160; <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a> = 0x8,</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html"> 136</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s4_parser.html">PS4Parser</a> {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf"> 139</a></span>&#160; <a class="code" href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf">PS4Parser</a>() {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; Reset();</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">bool</span> getButtonPress(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> getButtonClick(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t getAnalogButton(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t getAnalogHat(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493"> 183</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">getX</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].x;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a"> 195</a></span>&#160; uint16_t <a class="code" href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">getY</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].y;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; };</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade"> 207</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">isTouching</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> !(ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].touching); <span class="comment">// The bit is cleared when a finger is touching the touchpad</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88"> 219</a></span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">getTouchCounter</a>(uint8_t <a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a> = 0, uint8_t xyId = 0) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> ps4Data.xy[xyId].finger[<a class="code" href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">finger</a>].counter;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; };</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888"> 228</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888">getAngle</a>(<a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a) {</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (a == <a class="code" href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a>)</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> (atan2(ps4Data.accY, ps4Data.accZ) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> (atan2(ps4Data.accX, ps4Data.accZ) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; };</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a"> 240</a></span>&#160; int16_t <a class="code" href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a">getSensor</a>(<a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> s) {</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">switch</span>(s) {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a">gX</a>:</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> ps4Data.gyroX;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af">gY</a>:</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> ps4Data.gyroY;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a>:</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> ps4Data.gyroZ;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a>:</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> ps4Data.accX;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a>:</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> ps4Data.accY;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">case</span> <a class="code" href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a>:</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> ps4Data.accZ;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; };</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9"> 260</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">Reset</a>() {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; uint8_t i;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>); i++)</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[i] = 127;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; for (i = 0; i &lt; <span class="keyword">sizeof</span>(<a class="code" href="union_p_s4_buttons.html">PS4Buttons</a>); i++) {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = 0;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = 0;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>); i++)</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[i] = 0;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; for (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>)/<span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[0]); i++) {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">for</span> (uint8_t j = 0; j &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[0].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>)/<span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[0].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[0]); j++)</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">xy</a>[i].<a class="code" href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">finger</a>[j].<a class="code" href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touching</a> = 1; <span class="comment">// The bit is cleared if the finger is touching the touchpad</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a9923c62cace760f3091ec1491ea966e0"> 263</a></span>&#160; uint8_t <a class="code" href="class_p_s4_parser.html#a9923c62cace760f3091ec1491ea966e0">getBatteryLevel</a>() {</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> ps4Data.status.battery;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; };</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ac5eb7f8b6059fdf3b406244d8ebe4000"> 271</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#ac5eb7f8b6059fdf3b406244d8ebe4000">getUsbStatus</a>() {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> ps4Data.status.usb;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; };</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = 0;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; oldDpad = 0;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; };</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordtype">bool</span> checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b); <span class="comment">// Used to check PS4 DPAD buttons</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="struct_p_s4_data.html">PS4Data</a> ps4Data;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> oldButtonState, buttonClickState;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; uint8_t oldDpad;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;};</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a></div><div class="ttdeci">DPADEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00112">PS4Parser.h:112</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00260">PS4Parser.h:260</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a9972eeb87f2ed4a96dcdccf2dabbbc5a"><div class="ttname"><a href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">PS4Parser::getY</a></div><div class="ttdeci">uint16_t getY(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00186">PS4Parser.h:186</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a">gX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00136">controllerEnums.h:136</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a2c7c9d0313863ab69e7cafdd79b7492c"><div class="ttname"><a href="struct_p_s4_data.html#a2c7c9d0313863ab69e7cafdd79b7492c">PS4Data::gyroY</a></div><div class="ttdeci">int16_t gyroY</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00099">PS4Parser.h:99</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00115">PS4Parser.h:115</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa004cc456c79269dec99a9eed667484d"><div class="ttname"><a href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">PS4Data::hatValue</a></div><div class="ttdeci">uint8_t hatValue[4]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00091">PS4Parser.h:91</a></div></div>
<div class="ttc" id="struct_p_s4_data_html"><div class="ttname"><a href="struct_p_s4_data.html">PS4Data</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00088">PS4Parser.h:88</a></div></div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#af168e2800954b75dd167560e47d13bbe"> 279</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#af168e2800954b75dd167560e47d13bbe">getAudioStatus</a>() {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> ps4Data.status.audio;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; };</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#ad032eb66359df0d6fb15e9a3cabdaece"> 287</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_parser.html#ad032eb66359df0d6fb15e9a3cabdaece">getMicStatus</a>() {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> ps4Data.status.mic;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; };</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#adf2b7f2888fb7ebc9c58595a85568d65"> 292</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#adf2b7f2888fb7ebc9c58595a85568d65">setAllOff</a>() {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; setRumbleOff();</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; setLedOff();</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; };</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#acc9b3be8fb673e8e1f637c56d72f1180"> 298</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#acc9b3be8fb673e8e1f637c56d72f1180">setRumbleOff</a>() {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; setRumbleOn(0, 0);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a44628a8521ef9c19d773347156962cab"> 306</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a44628a8521ef9c19d773347156962cab">setRumbleOn</a>(<a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (mode == <a class="code" href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a>)</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; setRumbleOn(0x00, 0xFF);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; setRumbleOn(0xFF, 0x00);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; };</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a8299bdbb9d790e6b2e98e942e9bd154e"> 318</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a8299bdbb9d790e6b2e98e942e9bd154e">setRumbleOn</a>(uint8_t bigRumble, uint8_t smallRumble) {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; ps4Output.bigRumble = bigRumble;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; ps4Output.smallRumble = smallRumble;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; ps4Output.reportChanged = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; };</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a820f1caf266224d1c1bb83b550ef4c97"> 325</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a820f1caf266224d1c1bb83b550ef4c97">setLedOff</a>() {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; setLed(0, 0, 0);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; };</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8"> 333</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">setLed</a>(uint8_t r, uint8_t g, uint8_t b) {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; ps4Output.r = r;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; ps4Output.g = g;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; ps4Output.b = b;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; ps4Output.reportChanged = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; };</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a58e7a4746ee4e1fc5ceea44f64ffc3f2"> 344</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a58e7a4746ee4e1fc5ceea44f64ffc3f2">setLed</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color) {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; setLed((uint8_t)(color &gt;&gt; 16), (uint8_t)(color &gt;&gt; 8), (uint8_t)(color));</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a26342dea530bf09e2ac8df847c1874fc"> 353</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a26342dea530bf09e2ac8df847c1874fc">setLedFlash</a>(uint8_t flashOn, uint8_t flashOff) {</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; ps4Output.flashOn = flashOn;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; ps4Output.flashOff = flashOff;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; ps4Output.reportChanged = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; };</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">void</span> Parse(uint8_t len, uint8_t *buf);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9"> 369</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">Reset</a>() {</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; uint8_t i;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.hatValue); i++)</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; ps4Data.hatValue[i] = 127; <span class="comment">// Center value</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; ps4Data.btn.val = 0;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; oldButtonState.val = 0;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; for (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.trigger); i++)</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; ps4Data.trigger[i] = 0;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; for (i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.xy)/<span class="keyword">sizeof</span>(ps4Data.xy[0]); i++) {</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">for</span> (uint8_t j = 0; j &lt; <span class="keyword">sizeof</span>(ps4Data.xy[0].finger)/<span class="keyword">sizeof</span>(ps4Data.xy[0].finger[0]); j++)</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; ps4Data.xy[i].finger[j].touching = 1; <span class="comment">// The bit is cleared if the finger is touching the touchpad</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; ps4Data.btn.dpad = <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; oldButtonState.dpad = <a class="code" href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; buttonClickState.dpad = 0;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; oldDpad = 0;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; ps4Output.bigRumble = ps4Output.smallRumble = 0;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; ps4Output.r = ps4Output.g = ps4Output.b = 0;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; ps4Output.flashOn = ps4Output.flashOff = 0;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; ps4Output.reportChanged = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; };</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> sendOutputReport(<a class="code" href="struct_p_s4_output.html">PS4Output</a> *output) = 0;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">bool</span> checkDpad(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b); <span class="comment">// Used to check PS4 DPAD buttons</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="struct_p_s4_data.html">PS4Data</a> ps4Data;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> oldButtonState, buttonClickState;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="struct_p_s4_output.html">PS4Output</a> ps4Output;</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; uint8_t oldDpad;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;};</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s4_parser_html_a9923c62cace760f3091ec1491ea966e0"><div class="ttname"><a href="class_p_s4_parser.html#a9923c62cace760f3091ec1491ea966e0">PS4Parser::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00263">PS4Parser.h:263</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00127">PS4Parser.h:127</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a></div><div class="ttdeci">DPADEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00123">PS4Parser.h:123</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00369">PS4Parser.h:369</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_aa381b471d6e5f1e36fa87048b0f8ddc9"><div class="ttname"><a href="union_p_s4_buttons.html#aa381b471d6e5f1e36fa87048b0f8ddc9">PS4Buttons::val</a></div><div class="ttdeci">uint32_t val</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00071">PS4Parser.h:71</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a9972eeb87f2ed4a96dcdccf2dabbbc5a"><div class="ttname"><a href="class_p_s4_parser.html#a9972eeb87f2ed4a96dcdccf2dabbbc5a">PS4Parser::getY</a></div><div class="ttdeci">uint16_t getY(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00195">PS4Parser.h:195</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1370f1d20e9df77568c74681daf4a19a">gX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00163">controllerEnums.h:163</a></div></div>
<div class="ttc" id="struct_p_s4_status_html"><div class="ttname"><a href="struct_p_s4_status.html">PS4Status</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00084">PS4Parser.h:84</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00126">PS4Parser.h:126</a></div></div>
<div class="ttc" id="struct_p_s4_data_html"><div class="ttname"><a href="struct_p_s4_data.html">PS4Data</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00092">PS4Parser.h:92</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_aba0cb76ee82bd0ebe9872aa7bcbffac6"><div class="ttname"><a href="union_p_s4_buttons.html#aba0cb76ee82bd0ebe9872aa7bcbffac6">PS4Buttons::r1</a></div><div class="ttdeci">uint8_t r1</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00059">PS4Parser.h:59</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ac4b7e6c29af23a88d41a83e82c87c888"><div class="ttname"><a href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888">PS4Parser::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00219">PS4Parser.h:219</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aef57cffc87f423db996d817ea75fe5f9"><div class="ttname"><a href="struct_p_s4_data.html#aef57cffc87f423db996d817ea75fe5f9">PS4Data::dummy</a></div><div class="ttdeci">uint8_t dummy[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00098">PS4Parser.h:98</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a7e4ebbf1e22d59d3d7126bd1d56ee9b4"><div class="ttname"><a href="struct_p_s4_data.html#a7e4ebbf1e22d59d3d7126bd1d56ee9b4">PS4Data::accX</a></div><div class="ttdeci">int16_t accX</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00100">PS4Parser.h:100</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ad352f30e4ab772246574bbf654248906"><div class="ttname"><a href="class_p_s4_parser.html#ad352f30e4ab772246574bbf654248906">PS4Parser::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00038">PS4Parser.cpp:38</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a2c078e99c3b96303e6b6a60e2f36acc5"><div class="ttname"><a href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touchpadXY::touching</a></div><div class="ttdeci">uint8_t touching</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00079">PS4Parser.h:79</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a5ae56786b72dca582f490eb0d895d8c7"><div class="ttname"><a href="struct_p_s4_data.html#a5ae56786b72dca582f490eb0d895d8c7">PS4Data::status</a></div><div class="ttdeci">PS4Status status</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00104">PS4Parser.h:104</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ac4b7e6c29af23a88d41a83e82c87c888"><div class="ttname"><a href="class_p_s4_parser.html#ac4b7e6c29af23a88d41a83e82c87c888">PS4Parser::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00228">PS4Parser.h:228</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3f709524b0303086591d81bd238e62e8"><div class="ttname"><a href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">PS4Parser::setLed</a></div><div class="ttdeci">void setLed(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00333">PS4Parser.h:333</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a5c27c151ad76a3675dce1eda1a3e4cc4"><div class="ttname"><a href="union_p_s4_buttons.html#a5c27c151ad76a3675dce1eda1a3e4cc4">PS4Buttons::reportCounter</a></div><div class="ttdeci">uint8_t reportCounter</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00069">PS4Parser.h:69</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a58e7a4746ee4e1fc5ceea44f64ffc3f2"><div class="ttname"><a href="class_p_s4_parser.html#a58e7a4746ee4e1fc5ceea44f64ffc3f2">PS4Parser::setLed</a></div><div class="ttdeci">void setLed(ColorsEnum color)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00344">PS4Parser.h:344</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a8299bdbb9d790e6b2e98e942e9bd154e"><div class="ttname"><a href="class_p_s4_parser.html#a8299bdbb9d790e6b2e98e942e9bd154e">PS4Parser::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t bigRumble, uint8_t smallRumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00318">PS4Parser.h:318</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00128">PS4Parser.h:128</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a2c078e99c3b96303e6b6a60e2f36acc5"><div class="ttname"><a href="structtouchpad_x_y.html#a2c078e99c3b96303e6b6a60e2f36acc5">touchpadXY::touching</a></div><div class="ttdeci">uint8_t touching</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00078">PS4Parser.h:78</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a2b06200adee0c8ed616c4d18c23a584a"><div class="ttname"><a href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a">PS4Parser::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum s)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00231">PS4Parser.h:231</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00114">PS4Parser.h:114</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a8cbe113c7f536bd0c47704d957a97d54"><div class="ttname"><a href="struct_p_s4_data.html#a8cbe113c7f536bd0c47704d957a97d54">PS4Data::accY</a></div><div class="ttdeci">int16_t accY</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00100">PS4Parser.h:100</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a2b06200adee0c8ed616c4d18c23a584a"><div class="ttname"><a href="class_p_s4_parser.html#a2b06200adee0c8ed616c4d18c23a584a">PS4Parser::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum s)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00240">PS4Parser.h:240</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a4abdb9a24e512f7f2bad16df28b2fcab"><div class="ttname"><a href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">PS4Output::flashOn</a></div><div class="ttdeci">uint8_t flashOn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html"><div class="ttname"><a href="struct_p_s4_output.html">PS4Output</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_adf2ff3e6e4050070a68e90a83be81e92"><div class="ttname"><a href="union_p_s4_buttons.html#adf2ff3e6e4050070a68e90a83be81e92">PS4Buttons::share</a></div><div class="ttdeci">uint8_t share</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00062">PS4Parser.h:62</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00048">controllerEnums.h:48</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaba595d8bca8bc5e67c37c0a9d89becfa">UP</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00075">controllerEnums.h:75</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a44628a8521ef9c19d773347156962cab"><div class="ttname"><a href="class_p_s4_parser.html#a44628a8521ef9c19d773347156962cab">PS4Parser::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00306">PS4Parser.h:306</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_aad3a6094ac41933907969856dfb93e15"><div class="ttname"><a href="structtouchpad_x_y.html#aad3a6094ac41933907969856dfb93e15">touchpadXY::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00075">PS4Parser.h:75</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a0535a4a38dc250250fbf253e6bea53dc"><div class="ttname"><a href="struct_p_s4_data.html#a0535a4a38dc250250fbf253e6bea53dc">PS4Data::gyroX</a></div><div class="ttdeci">int16_t gyroX</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00099">PS4Parser.h:99</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00049">controllerEnums.h:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaec8379af7490bb9eaaf579cf17876f38">RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00076">controllerEnums.h:76</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a1163dc3517b1c27093b7cdd597eaa9fd"><div class="ttname"><a href="union_p_s4_buttons.html#a1163dc3517b1c27093b7cdd597eaa9fd">PS4Buttons::cross</a></div><div class="ttdeci">uint8_t cross</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00054">PS4Parser.h:54</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_adf2b7f2888fb7ebc9c58595a85568d65"><div class="ttname"><a href="class_p_s4_parser.html#adf2b7f2888fb7ebc9c58595a85568d65">PS4Parser::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00292">PS4Parser.h:292</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99b88dcb511243ea0c046cac1f5633ec"><div class="ttname"><a href="union_p_s4_buttons.html#a99b88dcb511243ea0c046cac1f5633ec">PS4Buttons::l2</a></div><div class="ttdeci">uint8_t l2</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00060">PS4Parser.h:60</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00066">controllerEnums.h:66</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a84eb7076098ec3135bdc440a279fde50"><div class="ttname"><a href="union_p_s4_buttons.html#a84eb7076098ec3135bdc440a279fde50">PS4Buttons::square</a></div><div class="ttdeci">uint8_t square</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00053">PS4Parser.h:53</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_aff395d1c46c9016ab4ea8ddbf034788b"><div class="ttname"><a href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">PS4Output::reportChanged</a></div><div class="ttdeci">bool reportChanged</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a5fdf37790214db1379457bab99adace9"><div class="ttname"><a href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9">PS4Buttons::ps</a></div><div class="ttdeci">uint8_t ps</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00067">PS4Parser.h:67</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00076">PS4Parser.cpp:76</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6770a72c17062c2e00fb3602435fcade"><div class="ttname"><a href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">PS4Parser::isTouching</a></div><div class="ttdeci">bool isTouching(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00198">PS4Parser.h:198</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a0cb061ca058b493218c01eb1ada1af00"><div class="ttname"><a href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">PS4Buttons::val</a></div><div class="ttdeci">uint8_t val[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00071">PS4Parser.h:71</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_ae52c34f2e6e66933e06b2f3448badcf0"><div class="ttname"><a href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">touchpadXY::counter</a></div><div class="ttdeci">uint8_t counter</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00078">PS4Parser.h:78</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_ac4ceb26c0ebba1c5a2691a1ecdb7dbae"><div class="ttname"><a href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">touchpadXY::y</a></div><div class="ttdeci">uint16_t y</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00083">PS4Parser.h:83</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aad2133de0113cee402cda4a8c7e8b6a5"><div class="ttname"><a href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">PS4Data::trigger</a></div><div class="ttdeci">uint8_t trigger[2]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00093">PS4Parser.h:93</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00050">controllerEnums.h:50</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6770a72c17062c2e00fb3602435fcade"><div class="ttname"><a href="class_p_s4_parser.html#a6770a72c17062c2e00fb3602435fcade">PS4Parser::isTouching</a></div><div class="ttdeci">bool isTouching(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00207">PS4Parser.h:207</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_ae52c34f2e6e66933e06b2f3448badcf0"><div class="ttname"><a href="structtouchpad_x_y.html#ae52c34f2e6e66933e06b2f3448badcf0">touchpadXY::counter</a></div><div class="ttdeci">uint8_t counter</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00077">PS4Parser.h:77</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_ac4ceb26c0ebba1c5a2691a1ecdb7dbae"><div class="ttname"><a href="structtouchpad_x_y.html#ac4ceb26c0ebba1c5a2691a1ecdb7dbae">touchpadXY::y</a></div><div class="ttdeci">uint16_t y</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00080">PS4Parser.h:80</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda9b0b4a95b99523966e0e34ffdadac9da">DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00077">controllerEnums.h:77</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a7bd35afa140be3103c8d4819914a3b4c"><div class="ttname"><a href="structtouchpad_x_y.html#a7bd35afa140be3103c8d4819914a3b4c">touchpadXY::finger</a></div><div class="ttdeci">struct touchpadXY::@24 finger[2]</div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00129">PS4Parser.h:129</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe"><div class="ttname"><a href="cdcprolific_8h.html#a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe">unknown</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00108">cdcprolific.h:108</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a7e95303156f31f965a09cc2d3877b524"><div class="ttname"><a href="_p_s4_parser_8h.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a></div><div class="ttdeci">const uint8_t PS4_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00025">PS4Parser.h:25</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00165">controllerEnums.h:165</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_ae084b9b30d75bf86aa29b7c537297e55"><div class="ttname"><a href="struct_p_s4_data.html#ae084b9b30d75bf86aa29b7c537297e55">PS4Data::dummy2</a></div><div class="ttdeci">uint8_t dummy2[9]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00103">PS4Parser.h:103</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00192">controllerEnums.h:192</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a76a85e749899e2e6cb135a6ec6acabb3"><div class="ttname"><a href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">PS4Output::r</a></div><div class="ttdeci">uint8_t r</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_acc9b3be8fb673e8e1f637c56d72f1180"><div class="ttname"><a href="class_p_s4_parser.html#acc9b3be8fb673e8e1f637c56d72f1180">PS4Parser::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00298">PS4Parser.h:298</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a3488f850c1de8d49a9dc932f1575e5e4"><div class="ttname"><a href="union_p_s4_buttons.html#a3488f850c1de8d49a9dc932f1575e5e4">PS4Buttons::l1</a></div><div class="ttdeci">uint8_t l1</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00058">PS4Parser.h:58</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00121">PS4Parser.h:121</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00132">PS4Parser.h:132</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a8c6030198733f66a5cb96b8a49e07618"><div class="ttname"><a href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">PS4Output::smallRumble</a></div><div class="ttdeci">uint8_t smallRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a09805f3bcc362c410d7897792599d61d"><div class="ttname"><a href="union_p_s4_buttons.html#a09805f3bcc362c410d7897792599d61d">PS4Buttons::r3</a></div><div class="ttdeci">uint8_t r3</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00065">PS4Parser.h:65</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00136">PS4Parser.h:136</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html"><div class="ttname"><a href="union_p_s4_buttons.html">PS4Buttons</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00050">PS4Parser.h:50</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a820f1caf266224d1c1bb83b550ef4c97"><div class="ttname"><a href="class_p_s4_parser.html#a820f1caf266224d1c1bb83b550ef4c97">PS4Parser::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00325">PS4Parser.h:325</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99e2971b4e511a8d1bb718408f559a92"><div class="ttname"><a href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">PS4Buttons::dpad</a></div><div class="ttdeci">uint8_t dpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00052">PS4Parser.h:52</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a1cfd90d32bbd9233dae34fb148fc9f56"><div class="ttname"><a href="struct_p_s4_data.html#a1cfd90d32bbd9233dae34fb148fc9f56">PS4Data::xy</a></div><div class="ttdeci">touchpadXY xy[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00104">PS4Parser.h:104</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a936ab414f4e60f0264945622d9aa1aea"><div class="ttname"><a href="union_p_s4_buttons.html#a936ab414f4e60f0264945622d9aa1aea">PS4Buttons::timestamp</a></div><div class="ttdeci">uint8_t timestamp</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00069">PS4Parser.h:69</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_ace15cafba1570d56951e7db7947ba94c"><div class="ttname"><a href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">PS4Data::gyroZ</a></div><div class="ttdeci">int16_t gyroZ</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00099">PS4Parser.h:99</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00135">controllerEnums.h:135</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00164">controllerEnums.h:164</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_ace15cafba1570d56951e7db7947ba94c"><div class="ttname"><a href="struct_p_s4_data.html#ace15cafba1570d56951e7db7947ba94c">PS4Data::gyroZ</a></div><div class="ttdeci">int16_t gyroZ</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00100">PS4Parser.h:100</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00162">controllerEnums.h:162</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="controller_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00191">controllerEnums.h:191</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html"><div class="ttname"><a href="structtouchpad_x_y.html">touchpadXY</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00074">PS4Parser.h:74</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_aa149326d97c6231087f81d954a994493"><div class="ttname"><a href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">PS4Parser::getX</a></div><div class="ttdeci">uint16_t getX(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00174">PS4Parser.h:174</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3ef06f8737f1088dbdbbc351b576c1cf"><div class="ttname"><a href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf">PS4Parser::PS4Parser</a></div><div class="ttdeci">PS4Parser()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00128">PS4Parser.h:128</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_aa149326d97c6231087f81d954a994493"><div class="ttname"><a href="class_p_s4_parser.html#aa149326d97c6231087f81d954a994493">PS4Parser::getX</a></div><div class="ttdeci">uint16_t getX(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00183">PS4Parser.h:183</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3ef06f8737f1088dbdbbc351b576c1cf"><div class="ttname"><a href="class_p_s4_parser.html#a3ef06f8737f1088dbdbbc351b576c1cf">PS4Parser::PS4Parser</a></div><div class="ttdeci">PS4Parser()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00139">PS4Parser.h:139</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a72d07e9a47b1b75474e152b6aaeae6e5"><div class="ttname"><a href="union_p_s4_buttons.html#a72d07e9a47b1b75474e152b6aaeae6e5">PS4Buttons::triangle</a></div><div class="ttdeci">uint8_t triangle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00056">PS4Parser.h:56</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a416642ff357b1313825fe94e0491b60e"><div class="ttname"><a href="union_p_s4_buttons.html#a416642ff357b1313825fe94e0491b60e">PS4Buttons::r2</a></div><div class="ttdeci">uint8_t r2</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00061">PS4Parser.h:61</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa61155e1874519285f4893430480b48d"><div class="ttname"><a href="struct_p_s4_data.html#aa61155e1874519285f4893430480b48d">PS4Data::reportId</a></div><div class="ttdeci">uint8_t reportId</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00090">PS4Parser.h:90</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00113">PS4Parser.h:113</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a0b3de008ae8aaa057c571081b1b64e88"><div class="ttname"><a href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">PS4Parser::getTouchCounter</a></div><div class="ttdeci">uint8_t getTouchCounter(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00210">PS4Parser.h:210</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00124">PS4Parser.h:124</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00131">PS4Parser.h:131</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a0b3de008ae8aaa057c571081b1b64e88"><div class="ttname"><a href="class_p_s4_parser.html#a0b3de008ae8aaa057c571081b1b64e88">PS4Parser::getTouchCounter</a></div><div class="ttdeci">uint8_t getTouchCounter(uint8_t finger=0, uint8_t xyId=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00219">PS4Parser.h:219</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_parser_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00130">PS4Parser.h:130</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a27f1b87f473ace3a4465ae999858357b"><div class="ttname"><a href="union_p_s4_buttons.html#a27f1b87f473ace3a4465ae999858357b">PS4Buttons::options</a></div><div class="ttdeci">uint8_t options</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00063">PS4Parser.h:63</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ad032eb66359df0d6fb15e9a3cabdaece"><div class="ttname"><a href="class_p_s4_parser.html#ad032eb66359df0d6fb15e9a3cabdaece">PS4Parser::getMicStatus</a></div><div class="ttdeci">bool getMicStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00287">PS4Parser.h:287</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a785305478e29a078003c360babb50ab0"><div class="ttname"><a href="union_p_s4_buttons.html#a785305478e29a078003c360babb50ab0">PS4Buttons::touchpad</a></div><div class="ttdeci">uint8_t touchpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00068">PS4Parser.h:68</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a66151c4e4601f80492cd5b2451a2f87a"><div class="ttname"><a href="class_p_s4_parser.html#a66151c4e4601f80492cd5b2451a2f87a">PS4Parser::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_ab8835f04d0c0c5e630d685ec2fd54e80"><div class="ttname"><a href="union_p_s4_buttons.html#ab8835f04d0c0c5e630d685ec2fd54e80">PS4Buttons::l3</a></div><div class="ttdeci">uint8_t l3</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00064">PS4Parser.h:64</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00092">PS4Parser.h:92</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a92a4ea3d328426b9f86be05cabaad91c"><div class="ttname"><a href="class_p_s4_parser.html#a92a4ea3d328426b9f86be05cabaad91c">PS4Parser::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00049">PS4Parser.cpp:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00131">controllerEnums.h:131</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00095">PS4Parser.h:95</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00158">controllerEnums.h:158</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a95340b24c0846c778d2d8d0c983f4cdb"><div class="ttname"><a href="union_p_s4_buttons.html#a95340b24c0846c778d2d8d0c983f4cdb">PS4Buttons::circle</a></div><div class="ttdeci">uint8_t circle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00055">PS4Parser.h:55</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a1c38a3e4161b1495b4d8ce37124c72a5"><div class="ttname"><a href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">touchpadXY::x</a></div><div class="ttdeci">uint16_t x</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00082">PS4Parser.h:82</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a635a4a50b43400707baa74c8e87944ca"><div class="ttname"><a href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">PS4Data::accZ</a></div><div class="ttdeci">int16_t accZ</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00100">PS4Parser.h:100</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af">gY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00136">controllerEnums.h:136</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a9b11c5b27f9c9501fdb4f616cb3b194c"><div class="ttname"><a href="class_p_s4_parser.html#a9b11c5b27f9c9501fdb4f616cb3b194c">PS4Parser::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00072">PS4Parser.cpp:72</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00133">controllerEnums.h:133</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="structtouchpad_x_y_html_a13c33840733612cad83156fcce5512e8"><div class="ttname"><a href="structtouchpad_x_y.html#a13c33840733612cad83156fcce5512e8">touchpadXY::finger</a></div><div class="ttdeci">struct touchpadXY::@24 finger[2]</div></div>
<div class="ttc" id="structtouchpad_x_y_html_a1c38a3e4161b1495b4d8ce37124c72a5"><div class="ttname"><a href="structtouchpad_x_y.html#a1c38a3e4161b1495b4d8ce37124c72a5">touchpadXY::x</a></div><div class="ttdeci">uint16_t x</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00079">PS4Parser.h:79</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a635a4a50b43400707baa74c8e87944ca"><div class="ttname"><a href="struct_p_s4_data.html#a635a4a50b43400707baa74c8e87944ca">PS4Data::accZ</a></div><div class="ttdeci">int16_t accZ</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00101">PS4Parser.h:101</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a031e6b960909353e732db224bcf597af">gY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00163">controllerEnums.h:163</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a26342dea530bf09e2ac8df847c1874fc"><div class="ttname"><a href="class_p_s4_parser.html#a26342dea530bf09e2ac8df847c1874fc">PS4Parser::setLedFlash</a></div><div class="ttdeci">void setLedFlash(uint8_t flashOn, uint8_t flashOff)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00353">PS4Parser.h:353</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="controller_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00160">controllerEnums.h:160</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_ac5eb7f8b6059fdf3b406244d8ebe4000"><div class="ttname"><a href="class_p_s4_parser.html#ac5eb7f8b6059fdf3b406244d8ebe4000">PS4Parser::getUsbStatus</a></div><div class="ttdeci">bool getUsbStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00271">PS4Parser.h:271</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_af168e2800954b75dd167560e47d13bbe"><div class="ttname"><a href="class_p_s4_parser.html#af168e2800954b75dd167560e47d13bbe">PS4Parser::getAudioStatus</a></div><div class="ttdeci">bool getAudioStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00279">PS4Parser.h:279</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdadb45120aafd37a973140edee24708065">LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00078">controllerEnums.h:78</a></div></div>
<div class="ttc" id="controller_enums_8h_html_ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"><div class="ttname"><a href="controller_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00068">controllerEnums.h:68</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4USB.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,14 +92,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">PS4USB.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="hiduniversal_8h_source.html">hiduniversal.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="hiduniversal_8h_source.html">hiduniversal.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_p_s4_parser_8h_source.html">PS4Parser.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4USB.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_u_s_b_8h__incl.png" border="0" usemap="#_p_s4_u_s_b_8h" alt=""/></div>
<map name="_p_s4_u_s_b_8h" id="_p_s4_u_s_b_8h">
<area shape="rect" id="node2" href="hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="4,83,107,111"/><area shape="rect" id="node6" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="132,83,228,111"/><area shape="rect" id="node3" href="hid_8h.html" title="hid.h" alt="" coords="31,161,80,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="47,315,103,343"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="24,238,124,266"/><area shape="rect" id="node7" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="200,161,328,189"/></map>
<area shape="rect" id="node2" href="hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="5,79,109,104"/><area shape="rect" id="node6" href="_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="133,79,229,104"/><area shape="rect" id="node3" href="hid_8h.html" title="hid.h" alt="" coords="32,152,82,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="48,299,104,324"/><area shape="rect" id="node5" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="25,225,126,251"/><area shape="rect" id="node7" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="201,152,330,177"/></map>
</div>
</div>
<p><a href="_p_s4_u_s_b_8h_source.html">Go to the source code of this file.</a></p>
@ -150,7 +150,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,8 +1,8 @@
<map id="PS4USB.h" name="PS4USB.h">
<area shape="rect" id="node2" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="4,83,107,111"/>
<area shape="rect" id="node6" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="132,83,228,111"/>
<area shape="rect" id="node3" href="$hid_8h.html" title="hid.h" alt="" coords="31,161,80,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="47,315,103,343"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="24,238,124,266"/>
<area shape="rect" id="node7" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="200,161,328,189"/>
<area shape="rect" id="node2" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="5,79,109,104"/>
<area shape="rect" id="node6" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="133,79,229,104"/>
<area shape="rect" id="node3" href="$hid_8h.html" title="hid.h" alt="" coords="32,152,82,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="48,299,104,324"/>
<area shape="rect" id="node5" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="25,225,126,251"/>
<area shape="rect" id="node7" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="201,152,330,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: PS4USB.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,14 +107,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps4usb_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps4usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _ps4usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hiduniversal_8h.html">hiduniversal.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s4_parser_8h.html">PS4Parser.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877"> 24</a></span>&#160;<span class="preprocessor">#define PS4_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS4_PID 0x05C4 // PS4 Controller</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877"> 24</a></span>&#160;<span class="preprocessor">#define PS4_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e"> 25</a></span>&#160;<span class="preprocessor">#define PS4_PID 0x05C4 // PS4 Controller</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_p_s4_u_s_b.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s4_u_s_b.html">PS4USB</a> : <span class="keyword">public</span> <a class="code" href="class_h_i_d_universal.html">HIDUniversal</a>, <span class="keyword">public</span> <a class="code" href="class_p_s4_parser.html">PS4Parser</a> {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_p_s4_u_s_b.html#a1ace884e418a0b8fe0f37bba7ea240e7"> 37</a></span>&#160; <a class="code" href="class_p_s4_u_s_b.html#a1ace884e418a0b8fe0f37bba7ea240e7">PS4USB</a>(<a class="code" href="class_u_s_b.html">USB</a> *p) :</div>
@ -137,40 +137,85 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_p_s4_u_s_b.html#a591218572aa8c5f5402483d19c1eebc6"> 77</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_p_s4_u_s_b.html#a591218572aa8c5f5402483d19c1eebc6">OnInitSuccessful</a>() {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a> == <a class="code" href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877">PS4_VID</a> &amp;&amp; <a class="code" href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a> == <a class="code" href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e">PS4_PID</a> &amp;&amp; pFuncOnInit)</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_h_i_d_universal_html_abc609e49d66fa6260e7cdcd2c4ff0a5a"><div class="ttname"><a href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a></div><div class="ttdeci">uint16_t PID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00054">hiduniversal.h:54</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00260">PS4Parser.h:260</a></div></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a> == <a class="code" href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877">PS4_VID</a> &amp;&amp; <a class="code" href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a> == <a class="code" href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e">PS4_PID</a>) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a>();</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">setLed</a>(<a class="code" href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a>);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; };</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_p_s4_u_s_b.html#a75dc09d15f149e1a1b96b8d2ccbbff89"> 90</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_u_s_b.html#a75dc09d15f149e1a1b96b8d2ccbbff89">sendOutputReport</a>(<a class="code" href="struct_p_s4_output.html">PS4Output</a> *output) { <span class="comment">// Source: https://github.com/chrippa/ds4drv</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t buf[32];</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; memset(buf, 0, <span class="keyword">sizeof</span>(buf));</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; buf[0] = 0x05; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buf[1]= 0xFF;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; buf[4] = output-&gt;<a class="code" href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">smallRumble</a>; <span class="comment">// Small Rumble</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; buf[5] = output-&gt;<a class="code" href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">bigRumble</a>; <span class="comment">// Big rumble</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; buf[6] = output-&gt;<a class="code" href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">r</a>; <span class="comment">// Red</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; buf[7] = output-&gt;<a class="code" href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">g</a>; <span class="comment">// Green</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; buf[8] = output-&gt;<a class="code" href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">b</a>; <span class="comment">// Blue</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; buf[9] = output-&gt;<a class="code" href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">flashOn</a>; <span class="comment">// Time to flash bright (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; buf[10] = output-&gt;<a class="code" href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">flashOff</a>; <span class="comment">// Time to flash dark (255 = 2.5 seconds)</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; output-&gt;<a class="code" href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">reportChanged</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// The PS4 console actually set the four last bytes to a CRC32 checksum, but it seems like it is actually not needed</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">bAddress</a>, <a class="code" href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">epInfo</a>[ <a class="code" href="class_h_i_d_universal.html#a542ee234ff63c01eb3dff607fb3b0def">hidInterfaces</a>[0].epIndex[<a class="code" href="class_h_i_d.html#aeb7fc07fe6dbc98d518967fdbc441ab3">epInterruptOutIndex</a>] ].epAddr, <span class="keyword">sizeof</span>(buf), buf);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_h_i_d_universal_html_abc609e49d66fa6260e7cdcd2c4ff0a5a"><div class="ttname"><a href="class_h_i_d_universal.html#abc609e49d66fa6260e7cdcd2c4ff0a5a">HIDUniversal::PID</a></div><div class="ttdeci">uint16_t PID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a24640b2362b0f6f51785fbd3dd4f13f9"><div class="ttname"><a href="class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9">PS4Parser::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00369">PS4Parser.h:369</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_abe78ea9b765b11c08b060f923ae9d8cd"><div class="ttname"><a href="class_p_s4_u_s_b.html#abe78ea9b765b11c08b060f923ae9d8cd">PS4USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00054">PS4USB.h:54</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_aa4be95e8f5164393ea4766f68c5b0ea8"><div class="ttname"><a href="class_h_i_d_universal.html#aa4be95e8f5164393ea4766f68c5b0ea8">HIDUniversal::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00082">hiduniversal.h:82</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_aa4be95e8f5164393ea4766f68c5b0ea8"><div class="ttname"><a href="class_h_i_d_universal.html#aa4be95e8f5164393ea4766f68c5b0ea8">HIDUniversal::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00097">hiduniversal.h:97</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a591218572aa8c5f5402483d19c1eebc6"><div class="ttname"><a href="class_p_s4_u_s_b.html#a591218572aa8c5f5402483d19c1eebc6">PS4USB::OnInitSuccessful</a></div><div class="ttdeci">virtual uint8_t OnInitSuccessful()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00077">PS4USB.h:77</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a237a65d5e6deff4a2ef1ca97c7383777"><div class="ttname"><a href="struct_p_s4_output.html#a237a65d5e6deff4a2ef1ca97c7383777">PS4Output::b</a></div><div class="ttdeci">uint8_t b</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a3f709524b0303086591d81bd238e62e8"><div class="ttname"><a href="class_p_s4_parser.html#a3f709524b0303086591d81bd238e62e8">PS4Parser::setLed</a></div><div class="ttdeci">void setLed(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00333">PS4Parser.h:333</a></div></div>
<div class="ttc" id="class_h_i_d_html_aeb7fc07fe6dbc98d518967fdbc441ab3"><div class="ttname"><a href="class_h_i_d.html#aeb7fc07fe6dbc98d518967fdbc441ab3">HID::epInterruptOutIndex</a></div><div class="ttdeci">static const uint8_t epInterruptOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00150">hid.h:150</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html"><div class="ttname"><a href="class_p_s4_u_s_b.html">PS4USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00031">PS4USB.h:31</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_a7f2123d1f20327600bb9e49a1ef5b0c7"><div class="ttname"><a href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a></div><div class="ttdeci">uint16_t VID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00054">hiduniversal.h:54</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00076">PS4Parser.cpp:76</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a4abdb9a24e512f7f2bad16df28b2fcab"><div class="ttname"><a href="struct_p_s4_output.html#a4abdb9a24e512f7f2bad16df28b2fcab">PS4Output::flashOn</a></div><div class="ttdeci">uint8_t flashOn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html"><div class="ttname"><a href="struct_p_s4_output.html">PS4Output</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00116">PS4Parser.h:116</a></div></div>
<div class="ttc" id="class_h_i_d_html_a525edb36c2cd8470eae703d3b236e4a7"><div class="ttname"><a href="class_h_i_d.html#a525edb36c2cd8470eae703d3b236e4a7">HID::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00146">hid.h:146</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_a542ee234ff63c01eb3dff607fb3b0def"><div class="ttname"><a href="class_h_i_d_universal.html#a542ee234ff63c01eb3dff607fb3b0def">HIDUniversal::hidInterfaces</a></div><div class="ttdeci">HIDInterface hidInterfaces[maxHidInterfaces]</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00065">hiduniversal.h:65</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_a7f2123d1f20327600bb9e49a1ef5b0c7"><div class="ttname"><a href="class_h_i_d_universal.html#a7f2123d1f20327600bb9e49a1ef5b0c7">HIDUniversal::VID</a></div><div class="ttdeci">uint16_t VID</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00069">hiduniversal.h:69</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_afc78d4e2c0aafbf4b0a27db3746ad93c"><div class="ttname"><a href="struct_p_s4_output.html#afc78d4e2c0aafbf4b0a27db3746ad93c">PS4Output::g</a></div><div class="ttdeci">uint8_t g</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_aff395d1c46c9016ab4ea8ddbf034788b"><div class="ttname"><a href="struct_p_s4_output.html#aff395d1c46c9016ab4ea8ddbf034788b">PS4Output::reportChanged</a></div><div class="ttdeci">bool reportChanged</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00120">PS4Parser.h:120</a></div></div>
<div class="ttc" id="class_p_s4_parser_html_a6498fdeb767364e84ce09ef208980622"><div class="ttname"><a href="class_p_s4_parser.html#a6498fdeb767364e84ce09ef208980622">PS4Parser::Parse</a></div><div class="ttdeci">void Parse(uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8cpp_source.html#l00064">PS4Parser.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_acf805149a0417d40895d5315b6ead9e6"><div class="ttname"><a href="class_p_s4_u_s_b.html#acf805149a0417d40895d5315b6ead9e6">PS4USB::ParseHIDData</a></div><div class="ttdeci">virtual void ParseHIDData(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00067">PS4USB.h:67</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a76a85e749899e2e6cb135a6ec6acabb3"><div class="ttname"><a href="struct_p_s4_output.html#a76a85e749899e2e6cb135a6ec6acabb3">PS4Output::r</a></div><div class="ttdeci">uint8_t r</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00118">PS4Parser.h:118</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_ac9e9e57cfce3e7b9588abb273bd908ec"><div class="ttname"><a href="struct_p_s4_output.html#ac9e9e57cfce3e7b9588abb273bd908ec">PS4Output::bigRumble</a></div><div class="ttdeci">uint8_t bigRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a3dd2b4e19516fb76d9442937102ea97f"><div class="ttname"><a href="class_p_s4_u_s_b.html#a3dd2b4e19516fb76d9442937102ea97f">PS4USB::connected</a></div><div class="ttdeci">bool connected()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00046">PS4USB.h:46</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a3f4dcb81acca1475402b93ac851b7be8"><div class="ttname"><a href="struct_p_s4_output.html#a3f4dcb81acca1475402b93ac851b7be8">PS4Output::flashOff</a></div><div class="ttdeci">uint8_t flashOff</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00119">PS4Parser.h:119</a></div></div>
<div class="ttc" id="struct_p_s4_output_html_a8c6030198733f66a5cb96b8a49e07618"><div class="ttname"><a href="struct_p_s4_output.html#a8c6030198733f66a5cb96b8a49e07618">PS4Output::smallRumble</a></div><div class="ttdeci">uint8_t smallRumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00117">PS4Parser.h:117</a></div></div>
<div class="ttc" id="_p_s4_parser_8h_html"><div class="ttname"><a href="_p_s4_parser_8h.html">PS4Parser.h</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00125">PS4Parser.h:125</a></div></div>
<div class="ttc" id="class_p_s4_parser_html"><div class="ttname"><a href="class_p_s4_parser.html">PS4Parser</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_parser_8h_source.html#l00136">PS4Parser.h:136</a></div></div>
<div class="ttc" id="hiduniversal_8h_html"><div class="ttname"><a href="hiduniversal_8h.html">hiduniversal.h</a></div></div>
<div class="ttc" id="_p_s4_u_s_b_8h_html_ac878fc36cc22549eb8a7ab6371197877"><div class="ttname"><a href="_p_s4_u_s_b_8h.html#ac878fc36cc22549eb8a7ab6371197877">PS4_VID</a></div><div class="ttdeci">#define PS4_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00024">PS4USB.h:24</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="controller_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00051">controllerEnums.h:51</a></div></div>
<div class="ttc" id="_p_s4_u_s_b_8h_html_a776f4d4694166dbe732e585ebb8c816e"><div class="ttname"><a href="_p_s4_u_s_b_8h.html#a776f4d4694166dbe732e585ebb8c816e">PS4_PID</a></div><div class="ttdeci">#define PS4_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00025">PS4USB.h:25</a></div></div>
<div class="ttc" id="class_h_i_d_html_a1583e665c2b930e8683c10dc271f013f"><div class="ttname"><a href="class_h_i_d.html#a1583e665c2b930e8683c10dc271f013f">HID::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00145">hid.h:145</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a75dc09d15f149e1a1b96b8d2ccbbff89"><div class="ttname"><a href="class_p_s4_u_s_b.html#a75dc09d15f149e1a1b96b8d2ccbbff89">PS4USB::sendOutputReport</a></div><div class="ttdeci">virtual void sendOutputReport(PS4Output *output)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00090">PS4USB.h:90</a></div></div>
<div class="ttc" id="class_p_s4_u_s_b_html_a1ace884e418a0b8fe0f37bba7ea240e7"><div class="ttname"><a href="class_p_s4_u_s_b.html#a1ace884e418a0b8fe0f37bba7ea240e7">PS4USB::PS4USB</a></div><div class="ttdeci">PS4USB(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_u_s_b_8h_source.html#l00037">PS4USB.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html"><div class="ttname"><a href="class_h_i_d_universal.html">HIDUniversal</a></div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00007">hiduniversal.h:7</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html_ad26d2e63130abac2059154bf5afbf152"><div class="ttname"><a href="class_h_i_d_universal.html#ad26d2e63130abac2059154bf5afbf152">HIDUniversal::epInfo</a></div><div class="ttdeci">EpInfo epInfo[totalEndpoints]</div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00064">hiduniversal.h:64</a></div></div>
<div class="ttc" id="class_h_i_d_universal_html"><div class="ttname"><a href="class_h_i_d_universal.html">HIDUniversal</a></div><div class="ttdef"><b>Definition:</b> <a href="hiduniversal_8h_source.html#l00024">hiduniversal.h:24</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: README.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: README.md Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -86,12 +86,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!--header-->
<div class="contents">
<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor"># USB Host Library Rev.2.0</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span></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;The code is released under the GNU General Public License.</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;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"># Summary</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"></span>This is Revision 2.0 of <a class="code" href="class_m_a_x3421e.html">MAX3421E</a>-based <a class="code" href="class_u_s_b.html">USB</a> Host Shield Library <span class="keywordflow">for</span> AVR<span class="stringliteral">&#39;s.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;This is Revision 2.0 of <a class="code" href="class_m_a_x3421e.html">MAX3421E</a>-based <a class="code" href="class_u_s_b.html">USB</a> Host Shield Library <span class="keywordflow">for</span> AVR<span class="stringliteral">&#39;s.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="stringliteral">Project main web site is: &lt;http://www.circuitsathome.com&gt;.</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="stringliteral"></span></div>
@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="stringliteral">By default serial debugging is disabled. To turn it on simply change ```ENABLE_UHS_DEBUGGING``` to 1 in [settings.h](settings.h) like so:</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="stringliteral">#define ENABLE_UHS_DEBUGGING 1</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="stringliteral"></span></div>
@ -153,192 +153,194 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="stringliteral">Currently the following boards are supported by the library:</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="stringliteral">* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.0)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral"> * Note if you are using the Teensy 3.0 you should download this SPI library as well: &lt;https://github.com/xxxajk/spi4teensy3&gt;. You should then add ```#include &lt;spi4teensy3.h&gt;``` to your .ino file.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral">* Balanduino</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral">* Sanguino</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="stringliteral">The following boards need to be activated manually in [settings.h](settings.h):</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">* Arduino Due</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral"> * If you are using the Arduino Due, then you must include the Arduino SPI library like so: ```#include &lt;SPI.h&gt;``` in your .ino file.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral">* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.x)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral"> * Note if you are using the Teensy 3.x you should download this SPI library as well: &lt;https://github.com/xxxajk/spi4teensy3&gt;. You should then add ```#include &lt;spi4teensy3.h&gt;``` to your .ino file.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="stringliteral">* Balanduino</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="stringliteral">* Sanguino</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral">* Arduino Mega ADK</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="stringliteral"> * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="stringliteral">Simply set the corresponding value to 1 instead of 0.</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral">The following boards need to be activated manually in [settings.h](settings.h):</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="stringliteral">* Arduino Mega ADK</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral"> * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="stringliteral">### [Bluetooth libraries](BTD.cpp)</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="stringliteral">Simply set the corresponding value to 1 instead of 0.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="stringliteral">The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="stringliteral">This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](examples/Bluetooth).</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="stringliteral">The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="stringliteral">[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino).</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="stringliteral">### [BTHID library](BTHID.cpp)</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="stringliteral">### [Bluetooth libraries](BTD.cpp)</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="stringliteral">The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="stringliteral">This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](examples/Bluetooth).</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="stringliteral">The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="stringliteral">[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino).</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral">The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral">### [BTHID library](BTHID.cpp)</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral">Currently HID mice and keyboards are supported.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral">The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="stringliteral">It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="stringliteral">Currently HID mice and keyboards are supported.</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="stringliteral">The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="stringliteral">It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2013/12/bluetooth-hid-devices-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="stringliteral">The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication.</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="stringliteral">### [SPP library](SPP.cpp)</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2013/12/bluetooth-hid-devices-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="stringliteral">SPP stands for &quot;Serial Port Profile&quot; and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth.</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral">It has been tested successfully on Windows, Mac OS X, Linux, and Android.</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral">Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information.</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="stringliteral">### [SPP library](SPP.cpp)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="stringliteral">SPP stands for &quot;Serial Port Profile&quot; and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral">It has been tested successfully on Windows, Mac OS X, Linux, and Android.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="stringliteral">Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/bluetooth-rfcommspp-service-support-for-usb-host-2-0-library-released&gt;</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="stringliteral">To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple.</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="stringliteral">It enables me to see the Bluetooth communication between my Mac and any device.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="stringliteral">### PS4 Library</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/bluetooth-rfcommspp-service-support-for-usb-host-2-0-library-released&gt;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="stringliteral">To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="stringliteral">It enables me to see the Bluetooth communication between my Mac and any device.</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="stringliteral">The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="stringliteral">### PS4 Library</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="stringliteral">The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons and joysticks on the controller via Bluetooth and USB respectively.</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="stringliteral">The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="stringliteral">I still have not figured out how to turn rumble on and off and set the color of the light, but hopefully I will figure that out soon.</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="stringliteral">The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="stringliteral">Also the gyro, accelerometer and touchpad values are still only available via USB at the moment.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="stringliteral">Before you can use the PS4 controller via Bluetooth you will need to pair with it.</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="stringliteral">Before you can use the PS4 controller via Bluetooth you will need to pair with it.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="stringliteral">Simply create the PS4BT instance like so: ```PS4BT PS4(&amp;Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="stringliteral">Simply create the PS4BT instance like so: ```PS4BT PS4(&amp;Btd, PAIR);``` and then hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in paring mode.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="stringliteral">It should then automatically pair the dongle with your controller. This only have to be done once.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral">It should then automatically pair the dongle with your controller. This only have to be done once.</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2014/01/ps4-controller-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="stringliteral">For information see the following blog post: &lt;http://blog.tkjelectronics.dk/2014/01/ps4-controller-now-supported-by-the-usb-host-library/&gt;.</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="stringliteral">Also check out this excellent Wiki by Frank Zhao about the PS4 controller: &lt;http://eleccelerator.com/wiki/index.php?title=DualShock_4&gt; and this Linux driver: &lt;https://github.com/chrippa/ds4drv&gt;.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="stringliteral">### PS3 Library</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="stringliteral">These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="stringliteral">In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by plugging the controller in via USB and letting the library set it automatically.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="stringliteral">In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by first plugging in the Bluetooth dongle and wait a few seconds. Now plug in the controller via USB and wait until the LEDs start to flash. The library has now written the Bluetooth address of the dongle to the PS3 controller.</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral">__Note:__ To obtain the address you have to plug in the Bluetooth dongle before connecting the controller, or alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20).</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral">Finally simply plug in the Bluetooth dongle again and press PS on the PS3 controller. After a few seconds it should be connected to the dongle and ready to use.</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="stringliteral">For more information about the PS3 protocol see the official wiki: &lt;https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information&gt;.</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="stringliteral">__Note:__ You will have to plug in the Bluetooth dongle before connecting the controller, as the library needs to read the address of the dongle. Alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20).</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="stringliteral">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="stringliteral">For more information about the PS3 protocol see the official wiki: &lt;https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information&gt;.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/sony-ps3-controller-support-added-to-usb-host-library&gt;</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/arduino/interfacing-ps3-controllers-via-usb&gt;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="stringliteral">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="stringliteral">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/sony-ps3-controller-support-added-to-usb-host-library&gt;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/arduino/interfacing-ps3-controllers-via-usb&gt;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral">1. _Richard Ibbotson_ who made this excellent guide: &lt;http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part&gt;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="stringliteral">2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: &lt;http://www.circuitsathome.com/mcu/rc-car-controlled-by-wii-remote-on-arduino&gt;</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="stringliteral">Also a big thanks all the people behind these sites about the Motion controller:</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="stringliteral">1. _Richard Ibbotson_ who made this excellent guide: &lt;http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part&gt;</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="stringliteral">2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: &lt;http://www.circuitsathome.com/mcu/rc-car-controlled-by-wii-remote-on-arduino&gt;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="stringliteral">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral">### Xbox Libraries</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="stringliteral">Also a big thanks all the people behind these sites about the Motion controller:</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="stringliteral">The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="stringliteral">### Xbox Libraries</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="stringliteral">#### Xbox library</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="stringliteral">The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="stringliteral">The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="stringliteral">#### Xbox library</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="stringliteral">All the information are from the following sites:</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="stringliteral">The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="stringliteral">* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&gt;</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="stringliteral">#### Xbox 360 Library</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="stringliteral">All the information are from the following sites:</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="stringliteral">* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&gt;</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="stringliteral">The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg).</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="stringliteral">#### Xbox 360 Library</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="stringliteral">The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg).</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="stringliteral">__Note that a Wireless controller can NOT be used via USB!__</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="stringliteral">Examples code can be found in the [examples directory](examples/Xbox).</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="stringliteral">__Note that a Wireless controller can NOT be used via USB!__</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="stringliteral">Also see the following blog posts:</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="stringliteral">Examples code can be found in the [examples directory](examples/Xbox).</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/xbox360-controller-support-added-to-usb-host-shield-2-0-library&gt;</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/xbox-360-controller-support-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/12/xbox-360-receiver-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="stringliteral">All the information regarding the Xbox 360 controller protocol are form these sites:</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="stringliteral">Also see the following blog posts:</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="stringliteral">* &lt;http://www.circuitsathome.com/mcu/xbox360-controller-support-added-to-usb-host-shield-2-0-library&gt;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/xbox-360-controller-support-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/12/xbox-360-receiver-added-to-the-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="stringliteral">### [Wii library](Wii.cpp)</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="stringliteral">All the information regarding the Xbox 360 controller protocol are form these sites:</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="stringliteral">The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="stringliteral">### [Wii library](Wii.cpp)</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="stringliteral">First you have to pair with the controller, this is done automatically by the library if you create the instance like so:</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="stringliteral">The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd,PAIR);</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="stringliteral">And then press 1 &amp; 2 at once on the Wiimote or press sync if you are using a Wii U Pro Controller.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="stringliteral">First you have to pair with the controller, this is done automatically by the library if you create the instance like so:</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd, PAIR);</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="stringliteral">And then press 1 &amp; 2 at once on the Wiimote or press sync if you are using a Wii U Pro Controller.</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="stringliteral">Then just press any button on the Wiimote and it will then connect to the dongle.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="stringliteral">```C++</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="stringliteral">Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino).</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="stringliteral">Then just press any button on the Wiimote and it will then connect to the dongle.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="stringliteral">Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino).</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/08/wiimote-added-to-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="stringliteral">The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h).</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/08/wiimote-added-to-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="stringliteral">The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="stringliteral">The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h).</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="stringliteral">The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used.</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="stringliteral">* The old library created by _Tomoyuki Tanaka_: &lt;https://github.com/moyuchin/WiiRemote_on_Arduino&gt; also helped a lot.</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="stringliteral">* The old library created by _Tomoyuki Tanaka_: &lt;https://github.com/moyuchin/WiiRemote_on_Arduino&gt; also helped a lot.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="stringliteral">* Try to connect a external power supply to the Arduino - this solves the problem in most cases.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="stringliteral">* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include &lt;usbhub.h&gt;``` and create the instance like so: ```USBHub Hub1(&amp;Usb);```.</span></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00081">usbhost.h:81</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="stringliteral">* Try to connect a external power supply to the Arduino - this solves the problem in most cases.</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="stringliteral">* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include &lt;usbhub.h&gt;``` and create the instance like so: ```USBHub Hub1(&amp;Usb);```.</span></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00086">usbhost.h:86</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: SPP.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -91,13 +91,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">SPP.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_s_p_p_8h_source.html">SPP.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_s_p_p_8h_source.html">SPP.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for SPP.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_s_p_p_8cpp__incl.png" border="0" usemap="#_s_p_p_8cpp" alt=""/></div>
<map name="_s_p_p_8cpp" id="_s_p_p_8cpp">
<area shape="rect" id="node2" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="11,83,68,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="10,161,69,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="12,238,68,266"/></map>
<area shape="rect" id="node2" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="12,79,70,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="12,152,71,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="13,225,69,251"/></map>
</div>
</div>
<p><a href="_s_p_p_8cpp_source.html">Go to the source code of this file.</a></p>
@ -145,7 +145,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,5 +1,5 @@
<map id="SPP.cpp" name="SPP.cpp">
<area shape="rect" id="node2" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="11,83,68,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="10,161,69,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="12,238,68,266"/>
<area shape="rect" id="node2" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="12,79,70,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="12,152,71,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="13,225,69,251"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: SPP.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">//l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -206,9 +206,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -219,7 +219,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d">SDP_PSM</a>) { <span class="comment">// It doesn&#39;t matter if it receives another reqeust, since it waits for the channel to disconnect in the L2CAP_SDP_DONE state, and the l2cap_event_flag will be cleared if so</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d">SDP_PSM</a>) { <span class="comment">// It doesn&#39;t matter if it receives another reqeust, since it waits for the channel to disconnect in the L2CAP_SDP_DONE state, and the l2cap_event_flag will be cleared if so</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; sdp_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; sdp_scid[1] = l2capinbuf[15];</div>
@ -270,18 +270,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448">L2CAP_CMD_INFORMATION_REQUEST</a>) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nInformation request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nInformation request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(hci_handle, identifier, l2capinbuf[12], l2capinbuf[13]);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == sdp_dcid[0] &amp;&amp; l2capinbuf[7] == sdp_dcid[1]) { <span class="comment">// SDP</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == sdp_dcid[0] &amp;&amp; l2capinbuf[7] == sdp_dcid[1]) { <span class="comment">// SDP</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_s_p_p_8h.html#af98e9758e7c66f921d980b280a3f5b4b">SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST_PDU</a>) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] &lt;&lt; 8 | l2capinbuf[17]) == <a class="code" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b">SERIALPORT_UUID</a>) || ((l2capinbuf[16] &lt;&lt; 8 | l2capinbuf[17]) == 0x0000 &amp;&amp; (l2capinbuf[18] &lt;&lt; 8 | l2capinbuf[19]) == <a class="code" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b">SERIALPORT_UUID</a>)) { <span class="comment">// Check if it&#39;s sending the full UUID, see: https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm, we will just check the first four bytes</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(firstMessage) {</div>
@ -302,7 +302,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; serviceNotSupported(l2capinbuf[9], l2capinbuf[10]); <span class="comment">// The service is not supported</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUUID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUUID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; uint16_t uuid;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[16] &lt;&lt; 8 | l2capinbuf[17]) == 0x0000) <span class="comment">// Check if it&#39;s sending the UUID as a 128-bit UUID</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; uuid = (l2capinbuf[18] &lt;&lt; 8 | l2capinbuf[19]);</div>
@ -319,14 +319,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown PDU: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == rfcomm_dcid[0] &amp;&amp; l2capinbuf[7] == rfcomm_dcid[1]) { <span class="comment">// RFCOMM</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == rfcomm_dcid[0] &amp;&amp; l2capinbuf[7] == rfcomm_dcid[1]) { <span class="comment">// RFCOMM</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; rfcommChannel = l2capinbuf[8] &amp; 0xF8;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; rfcommDirection = l2capinbuf[8] &amp; 0x04;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; rfcommCommandResponse = l2capinbuf[8] &amp; 0x02;</div>
@ -337,7 +337,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; rfcommChannelConnection = rfcommChannel;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Channel: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Channel: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; D_PrintHex&lt;uint8_t &gt; (rfcommChannel &gt;&gt; 3, 0x80);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Direction: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; D_PrintHex&lt;uint8_t &gt; (rfcommDirection &gt;&gt; 2, 0x80);</div>
@ -348,12 +348,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; PF_BIT: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; D_PrintHex&lt;uint8_t &gt; (rfcommPfBit, 0x80);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f">RFCOMM_DISC</a>) {</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f">RFCOMM_DISC</a>) {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived Disconnect RFCOMM Command on channel: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived Disconnect RFCOMM Command on channel: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; D_PrintHex&lt;uint8_t &gt; (rfcommChannel &gt;&gt; 3, 0x80);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; sendRfcomm(rfcommChannel, rfcommDirection, rfcommCommandResponse, <a class="code" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3">RFCOMM_UA</a>, rfcommPfBit, rfcommbuf, 0x00); <span class="comment">// UA Command</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>) {</div>
@ -366,35 +366,35 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span>(; i &lt; length; i++) {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(rfcommAvailable + i &gt;= <span class="keyword">sizeof</span> (rfcommDataBuffer)) {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWarning: Buffer is full!&quot;</span>), 0x80);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWarning: Buffer is full!&quot;</span>), 0x80);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; rfcommDataBuffer[rfcommAvailable + i] = l2capinbuf[11 + i + offset];</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; rfcommAvailable += i;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Data Available: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Data Available: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(rfcommAvailable, 0x80);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(offset) {</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Credit: 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[11], 0x80);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nError in FCS checksum!&quot;</span>), 0x80);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef PRINTREPORT // Uncomment &quot;#define PRINTREPORT&quot; to print the report send to the Arduino via Bluetooth</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; length; i++)</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT // Uncomment &quot;#define PRINTREPORT&quot; to print the report send to the Arduino via Bluetooth</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; length; i++)</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="message_8h.html#ab5d8177365493b21dbc092f6557bd508">Notifyc</a>(l2capinbuf[i + 11 + offset], 0x80);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3">BT_RFCOMM_RPN_CMD</a>) { <span class="comment">// UIH Remote Port Negotiation Command</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3">BT_RFCOMM_RPN_CMD</a>) { <span class="comment">// UIH Remote Port Negotiation Command</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Remote Port Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Remote Port Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b">BT_RFCOMM_RPN_RSP</a>; <span class="comment">// Command</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b">BT_RFCOMM_RPN_RSP</a>; <span class="comment">// Command</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; rfcommbuf[1] = l2capinbuf[12]; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: channel &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; rfcommbuf[3] = l2capinbuf[14]; <span class="comment">// Pre difined for Bluetooth, see 5.5.3 of TS 07.10 Adaption for RFCOMM</span></div>
@ -407,9 +407,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; sendRfcomm(rfcommChannel, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, rfcommPfBit, rfcommbuf, 0x0A); <span class="comment">// UIH Remote Port Negotiation Response</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea">BT_RFCOMM_MSC_CMD</a>) { <span class="comment">// UIH Modem Status Command</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Response&quot;</span>), 0x80);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Response&quot;</span>), 0x80);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550">BT_RFCOMM_MSC_RSP</a>; <span class="comment">// UIH Modem Status Response</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550">BT_RFCOMM_MSC_RSP</a>; <span class="comment">// UIH Modem Status Response</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; rfcommbuf[1] = 2 &lt;&lt; 1 | 1; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: (1 &lt;&lt; 0) | (1 &lt;&lt; 1) | (0 &lt;&lt; 2) | (channel &lt;&lt; 3)</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; rfcommbuf[3] = l2capinbuf[14];</div>
@ -418,14 +418,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#a5747e4c0826eb3341fe2476b5229e0d0">RFCOMM_SABM</a>) { <span class="comment">// SABM Command - this is sent twice: once for channel 0 and then for the channel to establish</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived SABM Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived SABM Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"></span> sendRfcomm(rfcommChannel, rfcommDirection, rfcommCommandResponse, <a class="code" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3">RFCOMM_UA</a>, rfcommPfBit, rfcommbuf, 0x00); <span class="comment">// UA Command</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; sendRfcomm(rfcommChannel, rfcommDirection, rfcommCommandResponse, <a class="code" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3">RFCOMM_UA</a>, rfcommPfBit, rfcommbuf, 0x00); <span class="comment">// UA Command</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#a11185ec5287f08bf49c2c68d8cd52a16">BT_RFCOMM_PN_CMD</a>) { <span class="comment">// UIH Parameter Negotiation Command</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Parameter Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Parameter Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822">BT_RFCOMM_PN_RSP</a>; <span class="comment">// UIH Parameter Negotiation Response</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822">BT_RFCOMM_PN_RSP</a>; <span class="comment">// UIH Parameter Negotiation Response</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; rfcommbuf[1] = l2capinbuf[12]; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: channel &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; rfcommbuf[3] = 0xE0; <span class="comment">// Pre difined for Bluetooth, see 5.5.3 of TS 07.10 Adaption for RFCOMM</span></div>
@ -438,9 +438,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; sendRfcomm(rfcommChannel, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, rfcommPfBit, rfcommbuf, 0x0A);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea">BT_RFCOMM_MSC_CMD</a>) { <span class="comment">// UIH Modem Status Command</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Response&quot;</span>), 0x80);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Response&quot;</span>), 0x80);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550">BT_RFCOMM_MSC_RSP</a>; <span class="comment">// UIH Modem Status Response</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550">BT_RFCOMM_MSC_RSP</a>; <span class="comment">// UIH Modem Status Response</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; rfcommbuf[1] = 2 &lt;&lt; 1 | 1; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: (1 &lt;&lt; 0) | (1 &lt;&lt; 1) | (0 &lt;&lt; 2) | (channel &lt;&lt; 3)</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; rfcommbuf[3] = l2capinbuf[14];</div>
@ -448,9 +448,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; delay(1);</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Modem Status Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea">BT_RFCOMM_MSC_CMD</a>; <span class="comment">// UIH Modem Status Command</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea">BT_RFCOMM_MSC_CMD</a>; <span class="comment">// UIH Modem Status Command</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; rfcommbuf[1] = 2 &lt;&lt; 1 | 1; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: (1 &lt;&lt; 0) | (1 &lt;&lt; 1) | (0 &lt;&lt; 2) | (channel &lt;&lt; 3)</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; rfcommbuf[3] = 0x8D; <span class="comment">// Can receive frames (YES), Ready to Communicate (YES), Ready to Receive (YES), Incomig Call (NO), Data is Value (YES)</span></div>
@ -459,22 +459,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550">BT_RFCOMM_MSC_RSP</a>) { <span class="comment">// UIH Modem Status Response</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span>(!creditSent) {</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Command with credit&quot;</span>), 0x80);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend UIH Command with credit&quot;</span>), 0x80);</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"></span> sendRfcommCredit(rfcommChannelConnection, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, 0x10, <span class="keyword">sizeof</span> (rfcommDataBuffer)); <span class="comment">// Send credit</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; sendRfcommCredit(rfcommChannelConnection, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, 0x10, <span class="keyword">sizeof</span> (rfcommDataBuffer)); <span class="comment">// Send credit</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; creditSent = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; timer = millis();</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; waitForLastCommand = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[10] == 0x01) { <span class="comment">// UIH Command with credit</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Command with credit&quot;</span>), 0x80);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Command with credit&quot;</span>), 0x80);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3">BT_RFCOMM_RPN_CMD</a>) { <span class="comment">// UIH Remote Port Negotiation Command</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType == <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a> &amp;&amp; l2capinbuf[11] == <a class="code" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3">BT_RFCOMM_RPN_CMD</a>) { <span class="comment">// UIH Remote Port Negotiation Command</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Remote Port Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReceived UIH Remote Port Negotiation Command&quot;</span>), 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"></span> rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b">BT_RFCOMM_RPN_RSP</a>; <span class="comment">// Command</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; rfcommbuf[0] = <a class="code" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b">BT_RFCOMM_RPN_RSP</a>; <span class="comment">// Command</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; rfcommbuf[1] = l2capinbuf[12]; <span class="comment">// Length and shiftet like so: length &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; rfcommbuf[2] = l2capinbuf[13]; <span class="comment">// Channel: channel &lt;&lt; 1 | 1</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; rfcommbuf[3] = l2capinbuf[14]; <span class="comment">// Pre difined for Bluetooth, see 5.5.3 of TS 07.10 Adaption for RFCOMM</span></div>
@ -486,32 +486,32 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; rfcommbuf[9] = l2capinbuf[20]; <span class="comment">// Number of Frames</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; sendRfcomm(rfcommChannel, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, rfcommPfBit, rfcommbuf, 0x0A); <span class="comment">// UIH Remote Port Negotiation Response</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Connection is now established\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Connection is now established\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"></span> waitForLastCommand = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; waitForLastCommand = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; creditSent = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> = <span class="keyword">true</span>; <span class="comment">// The RFCOMM channel is now established</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; sppIndex = 0;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType != <a class="code" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f">RFCOMM_DISC</a>) {</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rfcommChannelType != <a class="code" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f">RFCOMM_DISC</a>) {</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported RFCOMM Data - ChannelType: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; D_PrintHex&lt;uint8_t &gt; (rfcommChannelType, 0x80);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[11], 0x80);</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[6], 0x80);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"></span> SDP_task();</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; SDP_task();</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; RFCOMM_task();</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;}</div>
@ -519,9 +519,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90"> 428</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">SPP::Run</a>() {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(waitForLastCommand &amp;&amp; (millis() - timer) &gt; 100) { <span class="comment">// We will only wait 100ms and see if the UIH Remote Port Negotiation Command is send, as some deviced don&#39;t send it</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Connection is now established - Automatic\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Connection is now established - Automatic\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"></span> creditSent = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; creditSent = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; waitForLastCommand = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> = <span class="keyword">true</span>; <span class="comment">// The RFCOMM channel is now established</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; sppIndex = 0;</div>
@ -535,9 +535,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3">L2CAP_FLAG_CONNECTION_SDP_REQUEST</a>)) {</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f">l2cap_clear_flag</a>(<a class="code" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3">L2CAP_FLAG_CONNECTION_SDP_REQUEST</a>); <span class="comment">// Clear flag</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSDP Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSDP Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, sdp_dcid, sdp_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, sdp_dcid, sdp_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; delay(1);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, sdp_dcid, sdp_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; identifier++;</div>
@ -548,18 +548,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f">l2cap_clear_flag</a>(<a class="code" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea">L2CAP_FLAG_DISCONNECT_SDP_REQUEST</a>); <span class="comment">// Clear flag</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; SDPConnected = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected SDP Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected SDP Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, sdp_dcid, sdp_scid);</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, sdp_dcid, sdp_scid);</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc">L2CAP_SDP_SUCCESS</a>:</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05">L2CAP_FLAG_CONFIG_SDP_SUCCESS</a>)) {</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f">l2cap_clear_flag</a>(<a class="code" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05">L2CAP_FLAG_CONFIG_SDP_SUCCESS</a>); <span class="comment">// Clear flag</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSDP Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSDP Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"></span> firstMessage = <span class="keyword">true</span>; <span class="comment">// Reset bool</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; firstMessage = <span class="keyword">true</span>; <span class="comment">// Reset bool</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; SDPConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; l2cap_sdp_state = <a class="code" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0">L2CAP_SDP_WAIT</a>;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div>
@ -568,9 +568,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258">L2CAP_DISCONNECT_RESPONSE</a>: <span class="comment">// This is for both disconnection response from the RFCOMM and SDP channel if they were connected</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d">L2CAP_FLAG_DISCONNECT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected L2CAP Connection&quot;</span>), 0x80);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected L2CAP Connection&quot;</span>), 0x80);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">Reset</a>();</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div>
@ -584,9 +584,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0">L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST</a>)) {</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f">l2cap_clear_flag</a>(<a class="code" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0">L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST</a>); <span class="comment">// Clear flag</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, rfcomm_dcid, rfcomm_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, rfcomm_dcid, rfcomm_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; delay(1);</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, rfcomm_dcid, rfcomm_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; identifier++;</div>
@ -598,18 +598,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; RFCOMMConnected = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected RFCOMM Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected RFCOMM Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, rfcomm_dcid, rfcomm_scid);</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, rfcomm_dcid, rfcomm_scid);</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e">L2CAP_RFCOMM_SUCCESS</a>:</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570">L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS</a>)) {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f">l2cap_clear_flag</a>(<a class="code" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570">L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS</a>); <span class="comment">// Clear flag</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nRFCOMM Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"></span> rfcommAvailable = 0; <span class="comment">// Reset number of bytes available</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; rfcommAvailable = 0; <span class="comment">// Reset number of bytes available</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; bytesRead = 0; <span class="comment">// Reset number of bytes received</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; RFCOMMConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; l2cap_rfcomm_state = <a class="code" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd">L2CAP_RFCOMM_WAIT</a>;</div>
@ -766,13 +766,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; l2capoutbuf[i + 3] = data[i];</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; l2capoutbuf[i + 3] = calcFcs(l2capoutbuf);</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - RFCOMM Data: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - RFCOMM Data: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">for</span>(i = 0; i &lt; length + 4; i++) {</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capoutbuf[i], 0x80);</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"></span> RFCOMM_Command(l2capoutbuf, length + 4);</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; RFCOMM_Command(l2capoutbuf, length + 4);</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;}</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="keywordtype">void</span> SPP::sendRfcommCredit(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t credit) {</div>
@ -782,13 +782,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; l2capoutbuf[3] = credit; <span class="comment">// Credit</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; l2capoutbuf[4] = calcFcs(l2capoutbuf);</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - RFCOMM Credit Data: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - RFCOMM Credit Data: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 5; i++) {</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capoutbuf[i], 0x80);</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; }</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"></span> RFCOMM_Command(l2capoutbuf, 5);</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; RFCOMM_Command(l2capoutbuf, 5);</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;}</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="comment">/* CRC on 2 bytes */</span></div>
@ -815,33 +815,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="comment">/* Serial commands */</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0"> 728</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a>(uint8_t data) {</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(&amp;data, 1);</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;}</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a>(uint8_t data) {</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(&amp;data, 1);</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;}</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a8bb421b7d948c3ffefc23aef95813192"> 740</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> size) {</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> size) {</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; size; i++) {</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; size; i++) {</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">if</span>(sppIndex &gt;= <span class="keyword">sizeof</span> (sppOutputBuffer) / <span class="keyword">sizeof</span> (sppOutputBuffer[0]))</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(); <span class="comment">// Send the current data in the buffer</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; sppOutputBuffer[sppIndex++] = data[i]; <span class="comment">// All the bytes are put into a buffer and then send using the send() function</span></div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> size;</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> size;</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;}</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div>
<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858"> 755</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">SPP::send</a>() {</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a> || !sppIndex)</div>
@ -897,11 +897,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; bytesRead = 0;</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; sendRfcommCredit(rfcommChannelConnection, rfcommDirection, 0, <a class="code" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373">RFCOMM_UIH</a>, 0x10, <span class="keyword">sizeof</span> (rfcommDataBuffer)); <span class="comment">// Send more credit</span></div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSent &quot;</span>), 0x80);</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSent &quot;</span>), 0x80);</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>((uint8_t)<span class="keyword">sizeof</span> (rfcommDataBuffer), 0x80);</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; more credit&quot;</span>), 0x80);</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">return</span> output;</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
@ -983,7 +983,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: SPP.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,20 +92,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">SPP.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for SPP.h:</div>
<div class="dyncontent">
<div class="center"><img src="_s_p_p_8h__incl.png" border="0" usemap="#_s_p_p_8h" alt=""/></div>
<map name="_s_p_p_8h" id="_s_p_p_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,83,64,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,161,63,189"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_s_p_p_8h__dep__incl.png" border="0" usemap="#_s_p_p_8hdep" alt=""/></div>
<map name="_s_p_p_8hdep" id="_s_p_p_8hdep">
<area shape="rect" id="node2" href="_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="4,83,75,111"/></map>
<area shape="rect" id="node2" href="_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="5,79,77,104"/></map>
</div>
</div>
<p><a href="_s_p_p_8h_source.html">Go to the source code of this file.</a></p>
@ -364,7 +364,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,3 +1,3 @@
<map id="SPP.h" name="SPP.h">
<area shape="rect" id="node2" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="4,83,75,111"/>
<area shape="rect" id="node2" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="5,79,77,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,4 +1,4 @@
<map id="SPP.h" name="SPP.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,83,64,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,161,63,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: SPP.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,33 +107,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _spp_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _spp_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _spp_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/* Used for SDP */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af98e9758e7c66f921d980b280a3f5b4b"> 24</a></span>&#160;<span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST_PDU 0x06 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a42a6f00a3828a932bae1509c813b5c98"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_RESPONSE_PDU 0x07 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SERIALPORT_UUID 0x1101 // See http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ac202a65fc9bc1a5d837e5d095b1bb9f2"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_UUID 0x0100</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a42a6f00a3828a932bae1509c813b5c98"> 25</a></span>&#160;<span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_RESPONSE_PDU 0x07 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b"> 26</a></span>&#160;<span class="preprocessor">#define SERIALPORT_UUID 0x1101 // See http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ac202a65fc9bc1a5d837e5d095b1bb9f2"> 27</a></span>&#160;<span class="preprocessor">#define L2CAP_UUID 0x0100</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">/* Used for RFCOMM */</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a5747e4c0826eb3341fe2476b5229e0d0"> 30</a></span>&#160;<span class="preprocessor">#define RFCOMM_SABM 0x2F</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3"> 31</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UA 0x63</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UIH 0xEF</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span><span class="comment">//#define RFCOMM_DM 0x0F</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3"> 31</a></span>&#160;<span class="preprocessor">#define RFCOMM_UA 0x63</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373"> 32</a></span>&#160;<span class="preprocessor">#define RFCOMM_UIH 0xEF</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//#define RFCOMM_DM 0x0F</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f"> 34</a></span>&#160;<span class="preprocessor">#define RFCOMM_DISC 0x43</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af31032289d962bc2408debecc2823b8c"> 36</a></span>&#160;<span class="preprocessor">#define extendAddress 0x01 // Always 1</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Multiplexer message types</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a11185ec5287f08bf49c2c68d8cd52a16"> 39</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_PN_CMD 0x83</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822"> 40</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_PN_RSP 0x81</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_CMD 0xE3</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_RSP 0xE1</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_CMD 0x93</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_RSP 0x91</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822"> 40</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_PN_RSP 0x81</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea"> 41</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_MSC_CMD 0xE3</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550"> 42</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_MSC_RSP 0xE1</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3"> 43</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_RPN_CMD 0x93</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b"> 44</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_RPN_RSP 0x91</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_CMD 0x23</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_RSP 0x21</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">#define BT_RFCOMM_FCON_CMD 0xA3</span></div>
@ -167,16 +167,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">read</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">using</span> Print::write;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">discard</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">private</span>:</div>
@ -268,7 +268,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Usb.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,13 +89,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Usb.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_usb_8h_source.html">Usb.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for Usb.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_usb_8cpp__incl.png" border="0" usemap="#_usb_8cpp" alt=""/></div>
<map name="_usb_8cpp" id="_usb_8cpp">
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="12,83,68,111"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="12,79,69,104"/></map>
</div>
</div>
<p><a href="_usb_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for Usb.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,3 +1,3 @@
<map id="Usb.cpp" name="Usb.cpp">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="12,83,68,111"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="12,79,69,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Usb.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -231,10 +231,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; direction = ((bmReqType &amp; 0x80) &gt; 0);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">/* fill in setup packet */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a7b19c0f947fb46947fdb2e21d5bcd8a5">ReqType_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a> = bmReqType;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a45401dd6105394b16e18bfe07800c3ea">ReqType_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a> = bmReqType;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a> = bRequest;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a08e8d5473b08be191f92fe753d7bc821">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a> = wValLo;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a08e8d5473b08be191f92fe753d7bc821">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a> = wValHi;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#af6cb87d710f8ec212bf5b47890554214">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a> = wValLo;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#af6cb87d710f8ec212bf5b47890554214">wVal_u</a>.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a> = wValHi;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a> = wInd;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; setup_pkt.<a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a> = total;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
@ -418,7 +418,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">regWr</a>(<a class="code" href="max3421e_8h.html#a9ab289252615caa2d19ceb4359d71a44">rHIRQ</a>, bmHXFRDNIRQ); <span class="comment">//clear IRQ</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; rcode = (<a class="code" href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">regRd</a>(<a class="code" href="max3421e_8h.html#a246dbd203f68062fab34f2869b76e479">rHRSL</a>) &amp; 0x0f);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">while</span>(rcode &amp;&amp; (timeout &gt; millis())) {</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">while</span>(rcode &amp;&amp; ((<span class="keywordtype">long</span>)(millis() - timeout) &lt; 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>)) {</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">switch</span>(rcode) {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">case</span> <a class="code" href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a>:</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; nak_count++;</div>
@ -471,11 +471,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; uint8_t retry_count = 0;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; uint16_t nak_count = 0;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">while</span>(timeout &gt; millis()) {</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">while</span>((<span class="keywordtype">long</span>)(millis() - timeout) &lt; 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>) {</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">regWr</a>(<a class="code" href="max3421e_8h.html#aa541c456525254b21a0bc53aadaeee4d">rHXFR</a>, (token | ep)); <span class="comment">//launch the transfer</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; rcode = <a class="code" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a>;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">while</span>(timeout &gt; millis()) <span class="comment">//wait for transfer completion</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">while</span>((<span class="keywordtype">long</span>)(millis() - timeout) &lt; 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>) <span class="comment">//wait for transfer completion</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; tmpdata = <a class="code" href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">regRd</a>(<a class="code" href="max3421e_8h.html#a9ab289252615caa2d19ceb4359d71a44">rHIRQ</a>);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
@ -566,7 +566,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d">USB_DETACHED_SUBSTATE_ILLEGAL</a>: <span class="comment">//just sit here</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493">USB_ATTACHED_SUBSTATE_SETTLE</a>: <span class="comment">//settle time for just attached device</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>(delay &lt; millis())</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>((<span class="keywordtype">long</span>)(millis() - delay) &gt;= 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>)</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; usb_task_state = <a class="code" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a>;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">break</span>; <span class="comment">// don&#39;t fall through</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a>:</div>
@ -593,7 +593,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a>:</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(delay &lt; millis()) usb_task_state = <a class="code" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a>;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>((<span class="keywordtype">long</span>)(millis() - delay) &gt;= 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>) usb_task_state = <a class="code" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a>;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">break</span>; <span class="comment">// don&#39;t fall through</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a>:</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
@ -848,7 +848,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor">#if 1 </span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor">//get device descriptor</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24"> 761</a></span>&#160;uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, nbytes, dataptr, NULL));</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;}</div>
@ -901,45 +901,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00120">UsbCore.h:120</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad55f0079a95df5e4a9bb22e88a7395f5"><div class="ttname"><a href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a></div><div class="ttdeci">#define USB_ERROR_EP_NOT_FOUND_IN_TBL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00071">UsbCore.h:71</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00134">UsbCore.h:134</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad55f0079a95df5e4a9bb22e88a7395f5"><div class="ttname"><a href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a></div><div class="ttdeci">#define USB_ERROR_EP_NOT_FOUND_IN_TBL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00085">UsbCore.h:85</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00170">max3421e.h:170</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a80a8d6b8e75c76947e452b4afa04c84e"><div class="ttname"><a href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00098">UsbCore.h:98</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a80a8d6b8e75c76947e452b4afa04c84e"><div class="ttname"><a href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8ec45bdb8c5273e99c3ab89349cb43f9"><div class="ttname"><a href="max3421e_8h.html#a8ec45bdb8c5273e99c3ab89349cb43f9">FSHOST</a></div><div class="ttdeci">#define FSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00035">max3421e.h:35</a></div></div>
<div class="ttc" id="max3421e_8h_html_a7e82a85eb165f82afde45df5f98504ff"><div class="ttname"><a href="max3421e_8h.html#a7e82a85eb165f82afde45df5f98504ff">rHCTL</a></div><div class="ttdeci">#define rHCTL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00179">max3421e.h:179</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r_html_a39499f3dd4e3f1ef1d8a2c9b430bc11b"><div class="ttname"><a href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html#a39499f3dd4e3f1ef1d8a2c9b430bc11b">USB_CONFIGURATION_DESCRIPTOR::wTotalLength</a></div><div class="ttdeci">uint16_t wTotalLength</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00119">usb_ch9.h:119</a></div></div>
<div class="ttc" id="class_u_s_b_html_a59ee57083ba492d87ff2947547848d58"><div class="ttname"><a href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">USB::getEpInfoEntry</a></div><div class="ttdeci">EpInfo * getEpInfoEntry(uint8_t addr, uint8_t ep)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00044">Usb.cpp:44</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1cde86dfa0124c81ebffcde9fdf61cc3"><div class="ttname"><a href="max3421e_8h.html#a1cde86dfa0124c81ebffcde9fdf61cc3">bmSOFKAENAB</a></div><div class="ttdeci">#define bmSOFKAENAB</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00171">max3421e.h:171</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_abbad38caa1ca9c52f47adccd3a850aed"><div class="ttname"><a href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a></div><div class="ttdeci">#define USB_DESCRIPTOR_STRING</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00065">usb_ch9.h:65</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00164">UsbCore.h:164</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a1b082667723b29243b021a1829bdd8d6"><div class="ttname"><a href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6">USB_SETTLE_DELAY</a></div><div class="ttdeci">#define USB_SETTLE_DELAY</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00081">UsbCore.h:81</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aaadb20392558e23e3eba073e358a4493"><div class="ttname"><a href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493">USB_ATTACHED_SUBSTATE_SETTLE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_SETTLE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00094">UsbCore.h:94</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_aa1e9380222063c40fbf43428f7c50d67"><div class="ttname"><a href="class_m_a_x3421e.html#aa1e9380222063c40fbf43428f7c50d67">MAX3421e::getVbusState</a></div><div class="ttdeci">uint8_t getVbusState(void)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00100">usbhost.h:100</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00178">UsbCore.h:178</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a1b082667723b29243b021a1829bdd8d6"><div class="ttname"><a href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6">USB_SETTLE_DELAY</a></div><div class="ttdeci">#define USB_SETTLE_DELAY</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00095">UsbCore.h:95</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aaadb20392558e23e3eba073e358a4493"><div class="ttname"><a href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493">USB_ATTACHED_SUBSTATE_SETTLE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_SETTLE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_aa1e9380222063c40fbf43428f7c50d67"><div class="ttname"><a href="class_m_a_x3421e.html#aa1e9380222063c40fbf43428f7c50d67">MAX3421e::getVbusState</a></div><div class="ttdeci">uint8_t getVbusState(void)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00105">usbhost.h:105</a></div></div>
<div class="ttc" id="max3421e_8h_html_acdfff8cccb2ba5a3dfaa67241ffe86a4"><div class="ttname"><a href="max3421e_8h.html#acdfff8cccb2ba5a3dfaa67241ffe86a4">bmRCVTOGRD</a></div><div class="ttdeci">#define bmRCVTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00204">max3421e.h:204</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cb7070e699b7815e3c45dc8f7dd67f1"><div class="ttname"><a href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1">USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00062">UsbCore.h:62</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a857a9899ad4f277faf074c3012e14ffa"><div class="ttname"><a href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a></div><div class="ttdeci">#define USB_RETRY_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cb7070e699b7815e3c45dc8f7dd67f1"><div class="ttname"><a href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1">USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00076">UsbCore.h:76</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a857a9899ad4f277faf074c3012e14ffa"><div class="ttname"><a href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a></div><div class="ttdeci">#define USB_RETRY_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00094">UsbCore.h:94</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_a3572226ee2137c7fbf7487a02b0f560f"><div class="ttname"><a href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a></div><div class="ttdeci">#define USB_REQUEST_GET_DESCRIPTOR</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00037">usb_ch9.h:37</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac6d0566773ed4549fe1a7a932e6c46de"><div class="ttname"><a href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a></div><div class="ttdeci">#define USB_DESCRIPTOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00063">usb_ch9.h:63</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6864ac74e4ed056f9eb37f1c78bd6c6f"><div class="ttname"><a href="max3421e_8h.html#a6864ac74e4ed056f9eb37f1c78bd6c6f">bmRCVTOG1</a></div><div class="ttdeci">#define bmRCVTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00186">max3421e.h:186</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a08e8d5473b08be191f92fe753d7bc821"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a08e8d5473b08be191f92fe753d7bc821">SETUP_PKT::wVal_u</a></div><div class="ttdeci">union SETUP_PKT::@30 wVal_u</div></div>
<div class="ttc" id="_usb_core_8h_html_a272428aaee5fccec4661bd5457d1928f"><div class="ttname"><a href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f">USB_ERROR_INVALID_MAX_PKT_SIZE</a></div><div class="ttdeci">#define USB_ERROR_INVALID_MAX_PKT_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00070">UsbCore.h:70</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a272428aaee5fccec4661bd5457d1928f"><div class="ttname"><a href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f">USB_ERROR_INVALID_MAX_PKT_SIZE</a></div><div class="ttdeci">#define USB_ERROR_INVALID_MAX_PKT_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00084">UsbCore.h:84</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae7fd7c5bb6dc87f44724dde2ad57df87"><div class="ttname"><a href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87">USB_STATE_DETACHED</a></div><div class="ttdeci">#define USB_STATE_DETACHED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00090">UsbCore.h:90</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae7fd7c5bb6dc87f44724dde2ad57df87"><div class="ttname"><a href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87">USB_STATE_DETACHED</a></div><div class="ttdeci">#define USB_STATE_DETACHED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00104">UsbCore.h:104</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="max3421e_8h_html_afa79b794eadcddfca2f62828dd83134b"><div class="ttname"><a href="max3421e_8h.html#afa79b794eadcddfca2f62828dd83134b">rRCVBC</a></div><div class="ttdeci">#define rRCVBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00045">max3421e.h:45</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa128de549704094dadb93daa8875472b"><div class="ttname"><a href="max3421e_8h.html#aa128de549704094dadb93daa8875472b">hrJERR</a></div><div class="ttdeci">#define hrJERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00225">max3421e.h:225</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a07720e9f2311bfa0d66cfae746576946"><div class="ttname"><a href="class_m_a_x3421e.html#a07720e9f2311bfa0d66cfae746576946">MAX3421e::Task</a></div><div class="ttdeci">uint8_t Task()</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00380">usbhost.h:380</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00126">UsbCore.h:126</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a07720e9f2311bfa0d66cfae746576946"><div class="ttname"><a href="class_m_a_x3421e.html#a07720e9f2311bfa0d66cfae746576946">MAX3421e::Task</a></div><div class="ttdeci">uint8_t Task()</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00405">usbhost.h:405</a></div></div>
<div class="ttc" id="max3421e_8h_html_aea69e77cdc2b4124122d0fbda7e37019"><div class="ttname"><a href="max3421e_8h.html#aea69e77cdc2b4124122d0fbda7e37019">hrSUCCESS</a></div><div class="ttdeci">#define hrSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00212">max3421e.h:212</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a6fef5305841ac36f67d8ddb0bd9127d4"><div class="ttname"><a href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4">USB_STATE_ERROR</a></div><div class="ttdeci">#define USB_STATE_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00103">UsbCore.h:103</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00145">UsbCore.h:145</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a6fef5305841ac36f67d8ddb0bd9127d4"><div class="ttname"><a href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4">USB_STATE_ERROR</a></div><div class="ttdeci">#define USB_STATE_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00117">UsbCore.h:117</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4a9dee0254d637bcd27ac53fd2a7cb7c"><div class="ttname"><a href="max3421e_8h.html#a4a9dee0254d637bcd27ac53fd2a7cb7c">bmSNDTOGRD</a></div><div class="ttdeci">#define bmSNDTOGRD</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00205">max3421e.h:205</a></div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
@ -948,100 +947,102 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="max3421e_8h_html_a82f316064dd5442d86e1536d3f1d9f7a"><div class="ttname"><a href="max3421e_8h.html#a82f316064dd5442d86e1536d3f1d9f7a">bmHXFRDNIRQ</a></div><div class="ttdeci">#define bmHXFRDNIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00151">max3421e.h:151</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff8cd03496bdcb0ca26f18878ad299d"><div class="ttname"><a href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB::USB</a></div><div class="ttdeci">USB(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00025">Usb.cpp:25</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a138c40c59f628eefbe273a8db0a96753"><div class="ttname"><a href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753">USB_STATE_RUNNING</a></div><div class="ttdeci">#define USB_STATE_RUNNING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00102">UsbCore.h:102</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a138c40c59f628eefbe273a8db0a96753"><div class="ttname"><a href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753">USB_STATE_RUNNING</a></div><div class="ttdeci">#define USB_STATE_RUNNING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00116">UsbCore.h:116</a></div></div>
<div class="ttc" id="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html">USB_CONFIGURATION_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00116">usb_ch9.h:116</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5ab905353668c35ea0d9f6989d24b849"><div class="ttname"><a href="max3421e_8h.html#a5ab905353668c35ea0d9f6989d24b849">rRCVFIFO</a></div><div class="ttdeci">#define rRCVFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00042">max3421e.h:42</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aa3e12dda249ef6acbb27592fc8fe1cba"><div class="ttname"><a href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">AddressPoolImpl::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00180">address.h:180</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00163">UsbCore.h:163</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00177">UsbCore.h:177</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab59b41d6ecb3a04e5bfc38b0eee4aec0"><div class="ttname"><a href="max3421e_8h.html#ab59b41d6ecb3a04e5bfc38b0eee4aec0">bmBUSRST</a></div><div class="ttdeci">#define bmBUSRST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00181">max3421e.h:181</a></div></div>
<div class="ttc" id="max3421e_8h_html_a6d59486bc96e76ebb429756a30ddb238"><div class="ttname"><a href="max3421e_8h.html#a6d59486bc96e76ebb429756a30ddb238">tokOUT</a></div><div class="ttdeci">#define tokOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00195">max3421e.h:195</a></div></div>
<div class="ttc" id="max3421e_8h_html_a436aef9c3815daee76dc227dcf15d4e4"><div class="ttname"><a href="max3421e_8h.html#a436aef9c3815daee76dc227dcf15d4e4">tokIN</a></div><div class="ttdeci">#define tokIN</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00194">max3421e.h:194</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa05ee2be883f4b96948e18b0d55ab5c2"><div class="ttname"><a href="max3421e_8h.html#aa05ee2be883f4b96948e18b0d55ab5c2">LSHOST</a></div><div class="ttdeci">#define LSHOST</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00036">max3421e.h:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad8686abbfa0d98547d450fe2a105a588"><div class="ttname"><a href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a></div><div class="ttdeci">#define USB_XFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad8686abbfa0d98547d450fe2a105a588"><div class="ttname"><a href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a></div><div class="ttdeci">#define USB_XFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00092">UsbCore.h:92</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="max3421e_8h_html_a330db4fc764b8ccae5214645c1ee5423"><div class="ttname"><a href="max3421e_8h.html#a330db4fc764b8ccae5214645c1ee5423">rMODE</a></div><div class="ttdeci">#define rMODE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00165">max3421e.h:165</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff697d334dc611720419374acd1e5fb"><div class="ttname"><a href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">USB::setUsbTaskState</a></div><div class="ttdeci">void setUsbTaskState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00040">Usb.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab44a7968d08016b58d98951059c37076"><div class="ttname"><a href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a></div><div class="ttdeci">#define hrNAK</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00216">max3421e.h:216</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00031">UsbCore.h:31</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00045">UsbCore.h:45</a></div></div>
<div class="ttc" id="max3421e_8h_html_a1eb6ec372ed236f1db3fbca201bdc28f"><div class="ttname"><a href="max3421e_8h.html#a1eb6ec372ed236f1db3fbca201bdc28f">rSNDBC</a></div><div class="ttdeci">#define rSNDBC</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00046">max3421e.h:46</a></div></div>
<div class="ttc" id="max3421e_8h_html_a246dbd203f68062fab34f2869b76e479"><div class="ttname"><a href="max3421e_8h.html#a246dbd203f68062fab34f2869b76e479">rHRSL</a></div><div class="ttdeci">#define rHRSL</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00201">max3421e.h:201</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ada22633d6de30155a60cb19f6e6452fe"><div class="ttname"><a href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00095">UsbCore.h:95</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_af136074eab636da10cf50a03d735c1b5"><div class="ttname"><a href="class_m_a_x3421e.html#af136074eab636da10cf50a03d735c1b5">MAX3421e::bytesRd</a></div><div class="ttdeci">uint8_t * bytesRd(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00204">usbhost.h:204</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ada22633d6de30155a60cb19f6e6452fe"><div class="ttname"><a href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe">USB_ATTACHED_SUBSTATE_RESET_DEVICE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00109">UsbCore.h:109</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_af136074eab636da10cf50a03d735c1b5"><div class="ttname"><a href="class_m_a_x3421e.html#af136074eab636da10cf50a03d735c1b5">MAX3421e::bytesRd</a></div><div class="ttdeci">uint8_t * bytesRd(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00223">usbhost.h:223</a></div></div>
<div class="ttc" id="max3421e_8h_html_a100ac012a99f7cb9305a2eb921741ce3"><div class="ttname"><a href="max3421e_8h.html#a100ac012a99f7cb9305a2eb921741ce3">tokINHS</a></div><div class="ttdeci">#define tokINHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00196">max3421e.h:196</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9744878036529e375f3b017b22b1eda2"><div class="ttname"><a href="max3421e_8h.html#a9744878036529e375f3b017b22b1eda2">bmLOWSPEED</a></div><div class="ttdeci">#define bmLOWSPEED</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00169">max3421e.h:169</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00128">UsbCore.h:128</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a67229549b336fb1c000488382d35aaaa"><div class="ttname"><a href="class_m_a_x3421e.html#a67229549b336fb1c000488382d35aaaa">MAX3421e::bytesWr</a></div><div class="ttdeci">uint8_t * bytesWr(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00147">usbhost.h:147</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a45401dd6105394b16e18bfe07800c3ea"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a45401dd6105394b16e18bfe07800c3ea">SETUP_PKT::ReqType_u</a></div><div class="ttdeci">union SETUP_PKT::@25 ReqType_u</div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a67229549b336fb1c000488382d35aaaa"><div class="ttname"><a href="class_m_a_x3421e.html#a67229549b336fb1c000488382d35aaaa">MAX3421e::bytesWr</a></div><div class="ttdeci">uint8_t * bytesWr(uint8_t reg, uint8_t nbytes, uint8_t *data_p)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00155">usbhost.h:155</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00791">Usb.cpp:791</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00096">controllerEnums.h:96</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac87659819bfd6491120c819fae2d46bc"><div class="ttname"><a href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a></div><div class="ttdeci">#define USB_REQUEST_SET_ADDRESS</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00036">usb_ch9.h:36</a></div></div>
<div class="ttc" id="max3421e_8h_html_acd574bdc815506033ec40fc96320520d"><div class="ttname"><a href="max3421e_8h.html#acd574bdc815506033ec40fc96320520d">tokSETUP</a></div><div class="ttdeci">#define tokSETUP</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00193">max3421e.h:193</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa541c456525254b21a0bc53aadaeee4d"><div class="ttname"><a href="max3421e_8h.html#aa541c456525254b21a0bc53aadaeee4d">rHXFR</a></div><div class="ttdeci">#define rHXFR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00190">max3421e.h:190</a></div></div>
<div class="ttc" id="max3421e_8h_html_a9ab289252615caa2d19ceb4359d71a44"><div class="ttname"><a href="max3421e_8h.html#a9ab289252615caa2d19ceb4359d71a44">rHIRQ</a></div><div class="ttdeci">#define rHIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00142">max3421e.h:142</a></div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="max3421e_8h_html_aa5d5e67db32d736bab1ee8ef8764f6aa"><div class="ttname"><a href="max3421e_8h.html#aa5d5e67db32d736bab1ee8ef8764f6aa">rSNDFIFO</a></div><div class="ttdeci">#define rSNDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00043">max3421e.h:43</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00171">UsbCore.h:171</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="struct_usb_device_address_html_a79ed442d6a357907ddb4d1697bd6af5f"><div class="ttname"><a href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">UsbDeviceAddress::devAddress</a></div><div class="ttdeci">uint8_t devAddress</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00067">address.h:67</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_af6cb87d710f8ec212bf5b47890554214"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#af6cb87d710f8ec212bf5b47890554214">SETUP_PKT::wVal_u</a></div><div class="ttdeci">union SETUP_PKT::@26 wVal_u</div></div>
<div class="ttc" id="max3421e_8h_html_a9889c0ed9a43ff3fea670a96c3fbd165"><div class="ttname"><a href="max3421e_8h.html#a9889c0ed9a43ff3fea670a96c3fbd165">tokOUTHS</a></div><div class="ttdeci">#define tokOUTHS</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00197">max3421e.h:197</a></div></div>
<div class="ttc" id="class_u_s_b_html_a1c1aad8269403bf488e3bc4c79886ce4"><div class="ttname"><a href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">USB::getUsbTaskState</a></div><div class="ttdeci">uint8_t getUsbTaskState(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00036">Usb.cpp:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00080">UsbCore.h:80</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3168cf67661a2716677b9830f30b880c"><div class="ttname"><a href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c">USB_STATE_MASK</a></div><div class="ttdeci">#define USB_STATE_MASK</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00088">UsbCore.h:88</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3168cf67661a2716677b9830f30b880c"><div class="ttname"><a href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c">USB_STATE_MASK</a></div><div class="ttdeci">#define USB_STATE_MASK</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00102">UsbCore.h:102</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00075">UsbCore.h:75</a></div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00424">Usb.cpp:424</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aff6ab2376cd29385b20c2b63d4ddd26d"><div class="ttname"><a href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d">USB_DETACHED_SUBSTATE_ILLEGAL</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_ILLEGAL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00093">UsbCore.h:93</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aff6ab2376cd29385b20c2b63d4ddd26d"><div class="ttname"><a href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d">USB_DETACHED_SUBSTATE_ILLEGAL</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_ILLEGAL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00107">UsbCore.h:107</a></div></div>
<div class="ttc" id="max3421e_8h_html_ab4e9ff11b75e71171814fdab1ff7ce45"><div class="ttname"><a href="max3421e_8h.html#ab4e9ff11b75e71171814fdab1ff7ce45">hrTIMEOUT</a></div><div class="ttdeci">#define hrTIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00226">max3421e.h:226</a></div></div>
<div class="ttc" id="max3421e_8h_html_ac6d86063950bdbf438d358c907aefbfa"><div class="ttname"><a href="max3421e_8h.html#ac6d86063950bdbf438d358c907aefbfa">rPERADDR</a></div><div class="ttdeci">#define rPERADDR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00177">max3421e.h:177</a></div></div>
<div class="ttc" id="max3421e_8h_html_ad780c154c3761f68e0e397e4fd8f9a07"><div class="ttname"><a href="max3421e_8h.html#ad780c154c3761f68e0e397e4fd8f9a07">bmRCVDAVIRQ</a></div><div class="ttdeci">#define bmRCVDAVIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00146">max3421e.h:146</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a311f11b79c4020d771cd6930e0a3223d"><div class="ttname"><a href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d">USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00096">UsbCore.h:96</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a53f1d4d8d100a709fd6b37b5e6f0829e"><div class="ttname"><a href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">MAX3421e::regWr</a></div><div class="ttdeci">void regWr(uint8_t reg, uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00125">usbhost.h:125</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a311f11b79c4020d771cd6930e0a3223d"><div class="ttname"><a href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d">USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00110">UsbCore.h:110</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a53f1d4d8d100a709fd6b37b5e6f0829e"><div class="ttname"><a href="class_m_a_x3421e.html#a53f1d4d8d100a709fd6b37b5e6f0829e">MAX3421e::regWr</a></div><div class="ttdeci">void regWr(uint8_t reg, uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00130">usbhost.h:130</a></div></div>
<div class="ttc" id="max3421e_8h_html_aca6a8aa4f0aebbe07c5e175572a92ef7"><div class="ttname"><a href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a></div><div class="ttdeci">#define bmRCVTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00185">max3421e.h:185</a></div></div>
<div class="ttc" id="struct_usb_device_html_a828814f5231b866ac665a24ec5edaa3a"><div class="ttname"><a href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a">UsbDevice::epcount</a></div><div class="ttdeci">uint8_t epcount</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00078">address.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aac8c844e6a20f42298d70e4438a029e5"><div class="ttname"><a href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a></div><div class="ttdeci">#define USB_STATE_CONFIGURING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00101">UsbCore.h:101</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00078">UsbCore.h:78</a></div></div>
<div class="ttc" id="_usb_core_8h_html_aac8c844e6a20f42298d70e4438a029e5"><div class="ttname"><a href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5">USB_STATE_CONFIGURING</a></div><div class="ttdeci">#define USB_STATE_CONFIGURING</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00115">UsbCore.h:115</a></div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00376">Usb.cpp:376</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00122">UsbCore.h:122</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4834ae7378471b63b9a1985c6294006f"><div class="ttname"><a href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a></div><div class="ttdeci">#define bmSNDTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00187">max3421e.h:187</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a508fe70d1983cdaa71cce85ea9c75ec1"><div class="ttname"><a href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">MAX3421e::regRd</a></div><div class="ttdeci">uint8_t regRd(uint8_t reg)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00182">usbhost.h:182</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html_a508fe70d1983cdaa71cce85ea9c75ec1"><div class="ttname"><a href="class_m_a_x3421e.html#a508fe70d1983cdaa71cce85ea9c75ec1">MAX3421e::regRd</a></div><div class="ttdeci">uint8_t regRd(uint8_t reg)</div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00197">usbhost.h:197</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a52c379fe7e22f53d3e3d47d65735fa3b"><div class="ttname"><a href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b">USB_ERROR_INVALID_ARGUMENT</a></div><div class="ttdeci">#define USB_ERROR_INVALID_ARGUMENT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00068">UsbCore.h:68</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a52c379fe7e22f53d3e3d47d65735fa3b"><div class="ttname"><a href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b">USB_ERROR_INVALID_ARGUMENT</a></div><div class="ttdeci">#define USB_ERROR_INVALID_ARGUMENT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00082">UsbCore.h:82</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00652">Usb.cpp:652</a></div></div>
<div class="ttc" id="macros_8h_html_a3b6ba9344d4ae0847095896841587862"><div class="ttname"><a href="macros_8h.html#a3b6ba9344d4ae0847095896841587862">USBTRACE3</a></div><div class="ttdeci">#define USBTRACE3(s, r, l)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00068">macros.h:68</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00153">UsbCore.h:153</a></div></div>
<div class="ttc" id="macros_8h_html_a3b6ba9344d4ae0847095896841587862"><div class="ttname"><a href="macros_8h.html#a3b6ba9344d4ae0847095896841587862">USBTRACE3</a></div><div class="ttdeci">#define USBTRACE3(s, r, l)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00078">macros.h:78</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00167">UsbCore.h:167</a></div></div>
<div class="ttc" id="max3421e_8h_html_a3cb02fdd2d36f8a755c4b1946a0b0063"><div class="ttname"><a href="max3421e_8h.html#a3cb02fdd2d36f8a755c4b1946a0b0063">SE0</a></div><div class="ttdeci">#define SE0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00033">max3421e.h:33</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a3d59841faa336c359b0736ca45988ce5"><div class="ttname"><a href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">AddressPoolImpl::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00254">address.h:254</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00116">UsbCore.h:116</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00130">UsbCore.h:130</a></div></div>
<div class="ttc" id="max3421e_8h_html_a042cc701398502fb70b8793ed76394ce"><div class="ttname"><a href="max3421e_8h.html#a042cc701398502fb70b8793ed76394ce">bmFRAMEIRQ</a></div><div class="ttdeci">#define bmFRAMEIRQ</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00150">max3421e.h:150</a></div></div>
<div class="ttc" id="max3421e_8h_html_a651e9347e706d3cb16357c656a7e9c8f"><div class="ttname"><a href="max3421e_8h.html#a651e9347e706d3cb16357c656a7e9c8f">hrTOGERR</a></div><div class="ttdeci">#define hrTOGERR</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00218">max3421e.h:218</a></div></div>
<div class="ttc" id="max3421e_8h_html_a5c3d7b0a5b0933cfc0183cd36ea91f16"><div class="ttname"><a href="max3421e_8h.html#a5c3d7b0a5b0933cfc0183cd36ea91f16">SE1</a></div><div class="ttdeci">#define SE1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00034">max3421e.h:34</a></div></div>
<div class="ttc" id="max3421e_8h_html_acddbcc3176885ece538a7e71665c27be"><div class="ttname"><a href="max3421e_8h.html#acddbcc3176885ece538a7e71665c27be">rSUDFIFO</a></div><div class="ttdeci">#define rSUDFIFO</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00044">max3421e.h:44</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a14657183c73c631754b31bd0cc588c87"><div class="ttname"><a href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87">AddressPoolImpl::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00202">address.h:202</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00032">UsbCore.h:32</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00046">UsbCore.h:46</a></div></div>
<div class="ttc" id="struct_usb_device_html_a351d1099501c36d9f301495acefd5f99"><div class="ttname"><a href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">UsbDevice::address</a></div><div class="ttdeci">UsbDeviceAddress address</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00077">address.h:77</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a7b19c0f947fb46947fdb2e21d5bcd8a5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a7b19c0f947fb46947fdb2e21d5bcd8a5">SETUP_PKT::ReqType_u</a></div><div class="ttdeci">union SETUP_PKT::@29 ReqType_u</div></div>
<div class="ttc" id="usb__ch9_8h_html_aadef005acc40340955d34d9767ef297c"><div class="ttname"><a href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a></div><div class="ttdeci">#define USB_REQUEST_SET_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00040">usb_ch9.h:40</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3708f4e8166d5d099e1982aa956eacce"><div class="ttname"><a href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce">USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00092">UsbCore.h:92</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00160">UsbCore.h:160</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a3708f4e8166d5d099e1982aa956eacce"><div class="ttname"><a href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce">USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00106">UsbCore.h:106</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00530">Usb.cpp:530</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a60a744d0f1386e4b28053a41bd6a958f"><div class="ttname"><a href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f">USB_DETACHED_SUBSTATE_INITIALIZE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_INITIALIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00091">UsbCore.h:91</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a60a744d0f1386e4b28053a41bd6a958f"><div class="ttname"><a href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f">USB_DETACHED_SUBSTATE_INITIALIZE</a></div><div class="ttdeci">#define USB_DETACHED_SUBSTATE_INITIALIZE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a2d69537e663e7d5f188004f0d25ec0cc"><div class="ttname"><a href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc">USB_ATTACHED_SUBSTATE_WAIT_SOF</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_SOF</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a2d69537e663e7d5f188004f0d25ec0cc"><div class="ttname"><a href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc">USB_ATTACHED_SUBSTATE_WAIT_SOF</a></div><div class="ttdeci">#define USB_ATTACHED_SUBSTATE_WAIT_SOF</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00111">UsbCore.h:111</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00173">UsbCore.h:173</a></div></div>
<div class="ttc" id="max3421e_8h_html_aee283b6d075581cdff38a6054e6f63a2"><div class="ttname"><a href="max3421e_8h.html#aee283b6d075581cdff38a6054e6f63a2">bmSNDTOG1</a></div><div class="ttdeci">#define bmSNDTOG1</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00188">max3421e.h:188</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00746">Usb.cpp:746</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae691ccb027b8e281ac87522a0e66aaa7"><div class="ttname"><a href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a></div><div class="ttdeci">#define USB_ERROR_TRANSFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00076">UsbCore.h:76</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00072">UsbCore.h:72</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae691ccb027b8e281ac87522a0e66aaa7"><div class="ttname"><a href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a></div><div class="ttdeci">#define USB_ERROR_TRANSFER_TIMEOUT</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00090">UsbCore.h:90</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00086">UsbCore.h:86</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -1,51 +1,51 @@
<map id="Usb.h" name="Usb.h">
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="97,83,151,111"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="310,83,369,111"/>
<area shape="rect" id="node15" href="$hid_8h.html" title="hid.h" alt="" coords="602,161,651,189"/>
<area shape="rect" id="node24" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="704,83,804,111"/>
<area shape="rect" id="node26" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="846,83,924,111"/>
<area shape="rect" id="node30" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="949,83,1019,111"/>
<area shape="rect" id="node32" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="1044,83,1145,111"/>
<area shape="rect" id="node34" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1170,83,1261,111"/>
<area shape="rect" id="node36" href="$message_8cpp.html" title="message.cpp" alt="" coords="1286,83,1385,111"/>
<area shape="rect" id="node37" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1410,83,1517,111"/>
<area shape="rect" id="node38" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="1541,83,1625,111"/>
<area shape="rect" id="node40" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="1172,238,1268,266"/>
<area shape="rect" id="node42" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1701,83,1771,111"/>
<area shape="rect" id="node43" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1795,83,1871,111"/>
<area shape="rect" id="node45" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="1896,83,1992,111"/>
<area shape="rect" id="node47" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="2023,83,2128,111"/>
<area shape="rect" id="node49" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="2166,83,2263,111"/>
<area shape="rect" id="node3" href="$adk_8cpp.html" title="adk.cpp" alt="" coords="5,161,72,189"/>
<area shape="rect" id="node5" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="97,161,169,189"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="468,315,540,343"/>
<area shape="rect" id="node9" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="255,161,328,189"/>
<area shape="rect" id="node11" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="359,161,416,189"/>
<area shape="rect" id="node13" href="$_wii_8h.html" title="Wii.h" alt="" coords="451,161,501,189"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="461,393,547,421"/>
<area shape="rect" id="node8" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="842,393,915,421"/>
<area shape="rect" id="node10" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="244,238,331,266"/>
<area shape="rect" id="node12" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="356,238,427,266"/>
<area shape="rect" id="node14" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="451,238,516,266"/>
<area shape="rect" id="node16" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="541,238,616,266"/>
<area shape="rect" id="node18" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="641,238,705,266"/>
<area shape="rect" id="node19" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="729,238,867,266"/>
<area shape="rect" id="node21" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="892,238,995,266"/>
<area shape="rect" id="node17" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="564,315,653,343"/>
<area shape="rect" id="node20" href="$hidescriptorparser_8cpp.html" title="hidescriptorparser.cpp" alt="" coords="709,315,861,343"/>
<area shape="rect" id="node22" href="$hiduniversal_8cpp.html" title="hiduniversal.cpp" alt="" coords="885,315,1003,343"/>
<area shape="rect" id="node23" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="1027,315,1111,343"/>
<area shape="rect" id="node25" href="$hidusagetitlearrays_8cpp.html" title="hidusagetitlearrays.cpp" alt="" coords="675,161,833,189"/>
<area shape="rect" id="node27" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="858,161,949,189"/>
<area shape="rect" id="node28" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="974,161,1065,189"/>
<area shape="rect" id="node29" href="$cdcprolific_8cpp.html" title="cdcprolific.cpp" alt="" coords="1020,238,1125,266"/>
<area shape="rect" id="node31" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1089,161,1173,189"/>
<area shape="rect" id="node33" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1198,161,1313,189"/>
<area shape="rect" id="node35" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1338,161,1443,189"/>
<area shape="rect" id="node39" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="1528,161,1627,189"/>
<area shape="rect" id="node41" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="1186,315,1296,343"/>
<area shape="rect" id="node44" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1772,161,1861,189"/>
<area shape="rect" id="node46" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="1886,161,1996,189"/>
<area shape="rect" id="node48" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="2020,161,2139,189"/>
<area shape="rect" id="node50" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="2163,161,2273,189"/>
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="98,79,152,104"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="311,79,370,104"/>
<area shape="rect" id="node15" href="$hid_8h.html" title="hid.h" alt="" coords="602,152,652,177"/>
<area shape="rect" id="node24" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="705,79,806,104"/>
<area shape="rect" id="node26" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="847,79,925,104"/>
<area shape="rect" id="node30" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="949,79,1020,104"/>
<area shape="rect" id="node32" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="1044,79,1146,104"/>
<area shape="rect" id="node34" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1171,79,1263,104"/>
<area shape="rect" id="node36" href="$message_8cpp.html" title="message.cpp" alt="" coords="1286,79,1387,104"/>
<area shape="rect" id="node37" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1411,79,1519,104"/>
<area shape="rect" id="node38" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="1542,79,1627,104"/>
<area shape="rect" id="node40" href="$_p_s4_parser_8h.html" title="PS4Parser.h" alt="" coords="1173,225,1269,251"/>
<area shape="rect" id="node42" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1702,79,1772,104"/>
<area shape="rect" id="node43" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1796,79,1872,104"/>
<area shape="rect" id="node45" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="1896,79,1993,104"/>
<area shape="rect" id="node47" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="2024,79,2129,104"/>
<area shape="rect" id="node49" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="2167,79,2264,104"/>
<area shape="rect" id="node3" href="$adk_8cpp.html" title="adk.cpp" alt="" coords="5,152,73,177"/>
<area shape="rect" id="node5" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="97,152,171,177"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="468,299,541,324"/>
<area shape="rect" id="node9" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="256,152,329,177"/>
<area shape="rect" id="node11" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="360,152,417,177"/>
<area shape="rect" id="node13" href="$_wii_8h.html" title="Wii.h" alt="" coords="451,152,502,177"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="461,372,548,397"/>
<area shape="rect" id="node8" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="843,372,916,397"/>
<area shape="rect" id="node10" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="245,225,332,251"/>
<area shape="rect" id="node12" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="357,225,428,251"/>
<area shape="rect" id="node14" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="452,225,517,251"/>
<area shape="rect" id="node16" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="541,225,617,251"/>
<area shape="rect" id="node18" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="642,225,706,251"/>
<area shape="rect" id="node19" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="730,225,869,251"/>
<area shape="rect" id="node21" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="893,225,996,251"/>
<area shape="rect" id="node17" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="565,299,655,324"/>
<area shape="rect" id="node20" href="$hidescriptorparser_8cpp.html" title="hidescriptorparser.cpp" alt="" coords="710,299,862,324"/>
<area shape="rect" id="node22" href="$hiduniversal_8cpp.html" title="hiduniversal.cpp" alt="" coords="886,299,1004,324"/>
<area shape="rect" id="node23" href="$_p_s4_u_s_b_8h.html" title="PS4USB.h" alt="" coords="1027,299,1113,324"/>
<area shape="rect" id="node25" href="$hidusagetitlearrays_8cpp.html" title="hidusagetitlearrays.cpp" alt="" coords="676,152,835,177"/>
<area shape="rect" id="node27" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="858,152,951,177"/>
<area shape="rect" id="node28" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="975,152,1067,177"/>
<area shape="rect" id="node29" href="$cdcprolific_8cpp.html" title="cdcprolific.cpp" alt="" coords="1021,225,1127,251"/>
<area shape="rect" id="node31" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1090,152,1175,177"/>
<area shape="rect" id="node33" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1199,152,1315,177"/>
<area shape="rect" id="node35" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1338,152,1444,177"/>
<area shape="rect" id="node39" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="1528,152,1628,177"/>
<area shape="rect" id="node41" href="$_p_s4_parser_8cpp.html" title="PS4Parser.cpp" alt="" coords="1187,299,1297,324"/>
<area shape="rect" id="node44" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1773,152,1863,177"/>
<area shape="rect" id="node46" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="1887,152,1998,177"/>
<area shape="rect" id="node48" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="2021,152,2140,177"/>
<area shape="rect" id="node50" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="2164,152,2275,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Usb.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,8 +107,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">/* USB functions */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _usb_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _usb_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// WARNING: Do not change the order of includes, or stuff will break!</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;inttypes.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: UsbCore.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -244,7 +244,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00031">31</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00045">45</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -258,7 +258,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00032">32</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00046">46</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -272,7 +272,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00033">33</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00047">47</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -286,7 +286,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00040">40</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00054">54</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -300,7 +300,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00041">41</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00055">55</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -314,7 +314,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00042">42</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00056">56</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -328,7 +328,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00043">43</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00057">57</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -342,7 +342,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00044">44</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00058">58</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -356,7 +356,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00045">45</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00059">59</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -370,7 +370,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00046">46</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00060">60</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -384,7 +384,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00047">47</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00061">61</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -398,7 +398,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00048">48</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -412,7 +412,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00049">49</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00063">63</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -426,7 +426,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00050">50</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00064">64</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -440,7 +440,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00051">51</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00065">65</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -454,7 +454,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00052">52</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00066">66</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -468,7 +468,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00053">53</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00067">67</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -482,7 +482,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00054">54</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -496,7 +496,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00055">55</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -510,7 +510,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00056">56</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00070">70</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -524,7 +524,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00057">57</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00071">71</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -538,7 +538,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00058">58</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00072">72</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -552,7 +552,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00061">61</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00075">75</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -566,7 +566,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00076">76</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -580,7 +580,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00063">63</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00077">77</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -594,7 +594,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00064">64</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -608,7 +608,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00065">65</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00079">79</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -622,7 +622,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00066">66</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -636,7 +636,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00067">67</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -650,7 +650,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00082">82</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -664,7 +664,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -678,7 +678,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00070">70</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00084">84</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -692,7 +692,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00071">71</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -706,7 +706,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00072">72</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00086">86</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -720,7 +720,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00073">73</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00087">87</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -734,7 +734,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00074">74</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -748,7 +748,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00075">75</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00089">89</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -762,7 +762,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00076">76</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -776,7 +776,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -790,7 +790,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -804,7 +804,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00095">95</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -818,7 +818,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00097">97</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -832,7 +832,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -846,7 +846,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00102">102</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -860,7 +860,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00104">104</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -874,7 +874,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00091">91</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00105">105</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -888,7 +888,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00106">106</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -902,7 +902,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00093">93</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00107">107</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -916,7 +916,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00108">108</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -930,7 +930,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00095">95</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00109">109</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -944,7 +944,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00096">96</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00110">110</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -958,7 +958,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00097">97</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00111">111</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -972,7 +972,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00098">98</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00112">112</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -986,7 +986,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00113">113</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1000,7 +1000,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00100">100</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00114">114</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1014,7 +1014,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00101">101</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00115">115</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1028,7 +1028,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00102">102</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00116">116</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1042,7 +1042,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00103">103</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00117">117</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1057,7 +1057,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00027">27</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_core_8h_source.html#l00041">41</a> of file <a class="el" href="_usb_core_8h_source.html">UsbCore.h</a>.</p>
</div>
</div>
@ -1078,7 +1078,7 @@ Typedefs</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: UsbCore.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,351 +89,365 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">UsbCore.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_usb_core_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * File: UsbCore.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Author: xxxajk</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Created on September 29, 2013, 9:25 PM</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#if !defined(_usb_h_) || defined(USBCORE_H)</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error &quot;Never include UsbCore.h directly; include Usb.h instead&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USBCORE_H</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// Not used anymore? If anyone uses this, please let us know so that this may be</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// moved to the proper place, settings.h.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//#define USB_METHODS_INLINE</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">/* shield pins. First parameter - SS pin, second parameter - INT pin */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifdef BOARD_BLACK_WIDDOW</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P6, P3&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Black Widow</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#elif defined(CORE_TEENSY) &amp;&amp; (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P9, P8&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Teensy++ 1.0 and 2.0</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#elif defined(BOARD_MEGA_ADK)</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P53, P54&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Arduino Mega ADK</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#elif defined(ARDUINO_AVR_BALANDUINO)</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P20, P19&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Balanduino</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 27</a></span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P10, P9&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo etc.) or Teensy 2.0 and 3.0</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 31</a></span>&#160;<span class="preprocessor">#define bmREQ_GET_DESCR USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //get descriptor request type</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmREQ_SET USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //set request type for all but &#39;set feature&#39; and &#39;set interface&#39;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 33</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmREQ_CL_GET_INTF USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE //get interface request type</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// D4-0 Recipient (0 - device, 1 - interface, 2 - endpoint, 3 - other, 4..31 - reserved)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae157c9a62665e9ca41bf765518077f40"> 40</a></span>&#160;<span class="preprocessor">#define USB_CLASS_USE_CLASS_INFO 0x00 // Use Class Info in the Interface Descriptors</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_COM_AND_CDC_CTRL 0x02 // Communications and CDC Control</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af062e949014bed74a8b5fedcf1705602"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ab3e03403111b64480ba298d2641cf92f"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_MASS_STORAGE 0x08 // Mass Storage</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac5a936a2d1a6e3403798b031294992a"> 48</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_CDC_DATA 0x0a // CDC-Data</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 50</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_SMART_CARD 0x0b // Smart-Card</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311fda5cdf4960e05a892084c1b11288"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_CONTENT_SECURITY 0x0d // Content Security</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a42a579e1be399e32a495b82634411449"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 53</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PERSONAL_HEALTH 0x0f // Personal Healthcare</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_DIAGNOSTIC_DEVICE 0xdc // Diagnostic Device</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_WIRELESS_CTRL 0xe0 // Wireless Controller</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a47087a6e244a02251b650921ea3b71db"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_APP_SPECIFIC 0xfe // Application Specific</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 58</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_VENDOR_SPECIFIC 0xff // Vendor Specific</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 61</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 62</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE 0xD2</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 63</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS 0xD3</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL 0xD4</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada55913b93ef46c430ed6979022c31b1"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL 0xD6</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595"> 69</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE 0xD9</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f"> 70</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_INVALID_MAX_PKT_SIZE 0xDA</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 71</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_EP_NOT_FOUND_IN_TBL 0xDB</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e"> 72</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET 0xE0</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229"> 73</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailGetDevDescr 0xE1</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a86f5704804d91e5b0333b418586f4c43"> 74</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailSetDevTblEntry 0xE2</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a5f181b47dbedffe69a32352247834b13"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailGetConfDescr 0xE3</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 78</a></span>&#160;<span class="preprocessor">#define USB_XFER_TIMEOUT 10000 //30000 // (5000) USB transfer timeout in milliseconds, per section 9.2.6.1 of USB 2.0 spec</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"></span><span class="comment">//#define USB_NAK_LIMIT 32000 //NAK limit for a transfer. 0 means NAKs are not counted</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 80</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 // 3 retry limit for a transfer</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_SETTLE_DELAY 200 //settle delay in milliseconds</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 83</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"></span><span class="comment">//#define HUB_MAX_HUBS 7 // maximum number of hubs that can be attached to the host controller</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 85</a></span>&#160;<span class="preprocessor">#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recomended, can be up to 20 ms</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c"> 88</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 90</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE 0x12</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493"> 94</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 95</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 96</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE 0x40</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 97</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e"> 98</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET 0x51</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 99</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE 0x60</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 101</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753"> 102</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 103</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 108</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 112</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 116</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 120</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 124</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 128</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2"> 136</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 142</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 145</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a>; <span class="comment">// 0 Bit-map of request type</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 148</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 149</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 150</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 153</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a>; <span class="comment">// 1 Request</span></div>
<a href="_usb_core_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (C) 2011 Circuits At Home, LTD. All rights reserved.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">This software may be distributed and modified under the terms of the GNU</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">General Public License version 2 (GPL2) as published by the Free Software</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">Foundation and appearing in the file GPL2.TXT included in the packaging of</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">this file. Please note that GPL2 Section 2[b] requires that all works based</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">on this software must also be made publicly available under the terms of</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">the GPL2 (&quot;Copyleft&quot;).</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Contact information</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">-------------------</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">Circuits At Home, LTD</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">Web : http://www.circuitsathome.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">e-mail : support@circuitsathome.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if !defined(_usb_h_) || defined(USBCORE_H)</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#error &quot;Never include UsbCore.h directly; include Usb.h instead&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define USBCORE_H</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Not used anymore? If anyone uses this, please let us know so that this may be</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// moved to the proper place, settings.h.</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//#define USB_METHODS_INLINE</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/* shield pins. First parameter - SS pin, second parameter - INT pin */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef BOARD_BLACK_WIDDOW</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P6, P3&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Black Widow</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#elif defined(CORE_TEENSY) &amp;&amp; (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#if EXT_RAM</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P20, P7&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Teensy++ 2.0 with XMEM2</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P9, P8&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Teensy++ 1.0 and 2.0</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#elif defined(BOARD_MEGA_ADK)</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P53, P54&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Arduino Mega ADK</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#elif defined(ARDUINO_AVR_BALANDUINO)</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P20, P19&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Balanduino</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 41</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_m_a_x3421e.html">MAX3421e&lt;P10, P9&gt;</a> <a class="code" href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.) or Teensy 2.0 and 3.0</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 45</a></span>&#160;<span class="preprocessor">#define bmREQ_GET_DESCR USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //get descriptor request type</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da"> 46</a></span>&#160;<span class="preprocessor">#define bmREQ_SET USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_DEVICE //set request type for all but &#39;set feature&#39; and &#39;set interface&#39;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 47</a></span>&#160;<span class="preprocessor">#define bmREQ_CL_GET_INTF USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE //get interface request type</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// D4-0 Recipient (0 - device, 1 - interface, 2 - endpoint, 3 - other, 4..31 - reserved)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae157c9a62665e9ca41bf765518077f40"> 54</a></span>&#160;<span class="preprocessor">#define USB_CLASS_USE_CLASS_INFO 0x00 // Use Class Info in the Interface Descriptors</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 55</a></span>&#160;<span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 56</a></span>&#160;<span class="preprocessor">#define USB_CLASS_COM_AND_CDC_CTRL 0x02 // Communications and CDC Control</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af062e949014bed74a8b5fedcf1705602"> 57</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 58</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 59</a></span>&#160;<span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ab3e03403111b64480ba298d2641cf92f"> 60</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 61</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MASS_STORAGE 0x08 // Mass Storage</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac5a936a2d1a6e3403798b031294992a"> 62</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 63</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CDC_DATA 0x0a // CDC-Data</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 64</a></span>&#160;<span class="preprocessor">#define USB_CLASS_SMART_CARD 0x0b // Smart-Card</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311fda5cdf4960e05a892084c1b11288"> 65</a></span>&#160;<span class="preprocessor">#define USB_CLASS_CONTENT_SECURITY 0x0d // Content Security</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a42a579e1be399e32a495b82634411449"> 66</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 67</a></span>&#160;<span class="preprocessor">#define USB_CLASS_PERSONAL_HEALTH 0x0f // Personal Healthcare</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 68</a></span>&#160;<span class="preprocessor">#define USB_CLASS_DIAGNOSTIC_DEVICE 0xdc // Diagnostic Device</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 69</a></span>&#160;<span class="preprocessor">#define USB_CLASS_WIRELESS_CTRL 0xe0 // Wireless Controller</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 70</a></span>&#160;<span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a47087a6e244a02251b650921ea3b71db"> 71</a></span>&#160;<span class="preprocessor">#define USB_CLASS_APP_SPECIFIC 0xfe // Application Specific</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 72</a></span>&#160;<span class="preprocessor">#define USB_CLASS_VENDOR_SPECIFIC 0xff // Vendor Specific</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 75</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 76</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_INIT_INCOMPLETE 0xD2</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 77</a></span>&#160;<span class="preprocessor">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS 0xD3</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 78</a></span>&#160;<span class="preprocessor">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL 0xD4</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada55913b93ef46c430ed6979022c31b1"> 79</a></span>&#160;<span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 80</a></span>&#160;<span class="preprocessor">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL 0xD6</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 81</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 82</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595"> 83</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE 0xD9</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a272428aaee5fccec4661bd5457d1928f"> 84</a></span>&#160;<span class="preprocessor">#define USB_ERROR_INVALID_MAX_PKT_SIZE 0xDA</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 85</a></span>&#160;<span class="preprocessor">#define USB_ERROR_EP_NOT_FOUND_IN_TBL 0xDB</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e"> 86</a></span>&#160;<span class="preprocessor">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET 0xE0</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a96a7af8bc5ba78235312e1084a5ee229"> 87</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetDevDescr 0xE1</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a86f5704804d91e5b0333b418586f4c43"> 88</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailSetDevTblEntry 0xE2</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a5f181b47dbedffe69a32352247834b13"> 89</a></span>&#160;<span class="preprocessor">#define USB_ERROR_FailGetConfDescr 0xE3</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 90</a></span>&#160;<span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 92</a></span>&#160;<span class="preprocessor">#define USB_XFER_TIMEOUT 10000 //30000 // (5000) USB transfer timeout in milliseconds, per section 9.2.6.1 of USB 2.0 spec</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">//#define USB_NAK_LIMIT 32000 //NAK limit for a transfer. 0 means NAKs are not counted</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 94</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 // 3 retry limit for a transfer</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a1b082667723b29243b021a1829bdd8d6"> 95</a></span>&#160;<span class="preprocessor">#define USB_SETTLE_DELAY 200 //settle delay in milliseconds</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 97</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">//#define HUB_MAX_HUBS 7 // maximum number of hubs that can be attached to the host controller</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 99</a></span>&#160;<span class="preprocessor">#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recomended, can be up to 20 ms</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3168cf67661a2716677b9830f30b880c"> 102</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 104</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 105</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 106</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE 0x12</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 107</a></span>&#160;<span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aaadb20392558e23e3eba073e358a4493"> 108</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 109</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 110</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET_COMPLETE 0x40</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 111</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a80a8d6b8e75c76947e452b4afa04c84e"> 112</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET 0x51</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 113</a></span>&#160;<span class="preprocessor">#define USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE 0x60</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 114</a></span>&#160;<span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 115</a></span>&#160;<span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a138c40c59f628eefbe273a8db0a96753"> 116</a></span>&#160;<span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_usb_core_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 117</a></span>&#160;<span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html"> 119</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 122</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 126</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 130</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 134</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 138</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 142</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2"> 150</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 156</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">wValue</a>; <span class="comment">// 2 Depends on bRequest</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 156</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 159</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 160</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 163</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a>; <span class="comment">// 4 Depends on bRequest</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 164</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a>; <span class="comment">// 6 Depends on bRequest</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;} __attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 159</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a>; <span class="comment">// 0 Bit-map of request type</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 162</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 163</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 164</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 167</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a>; <span class="comment">// 1 Request</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 171</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 176</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b.html">USB</a> : <span class="keyword">public</span> <a class="code" href="class_m_a_x3421e.html">MAX3421E</a> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t bmHubPre;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 170</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">wValue</a>; <span class="comment">// 2 Depends on bRequest</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 173</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 174</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a>;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 177</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a>; <span class="comment">// 4 Depends on bRequest</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 178</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a>; <span class="comment">// 6 Depends on bRequest</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;} __attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 184</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">SetHubPreMask</a>() {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; };</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">ResetHubPreMask</a>() {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; };</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 192</a></span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a>&amp; <a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>() {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="class_address_pool.html">AddressPool</a>&amp;)addrPool;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; };</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 196</a></span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> *pdev) {</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 185</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 190</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b.html">USB</a> : <span class="keyword">public</span> <a class="code" href="class_m_a_x3421e.html">MAX3421E</a> {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint8_t bmHubPre;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 198</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">SetHubPreMask</a>() {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; };</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 202</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">ResetHubPreMask</a>() {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; };</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 206</a></span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a>&amp; <a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>() {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="class_address_pool.html">AddressPool</a>&amp;)addrPool;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; };</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">getUsbTaskState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">setUsbTaskState</a>(uint8_t state);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a>* <a class="code" href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">getEpInfoEntry</a>(uint8_t addr, uint8_t ep);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(uint8_t addr, uint8_t epcount, <a class="code" href="struct_ep_info.html">EpInfo</a>* eprecord_ptr);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t* dataptr);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">ctrlData</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr, <span class="keywordtype">boolean</span> direction);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">ctrlStatus</a>(uint8_t ep, <span class="keywordtype">boolean</span> direction, uint16_t nak_limit);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t* data);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* data);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">dispatchPkt</a>(uint8_t token, uint8_t ep, uint16_t nak_limit);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">Task</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 210</a></span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> *pdev) {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; };</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 220</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; };</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">getUsbTaskState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">setUsbTaskState</a>(uint8_t state);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a>* <a class="code" href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">getEpInfoEntry</a>(uint8_t addr, uint8_t ep);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(uint8_t addr, uint8_t epcount, <a class="code" href="struct_ep_info.html">EpInfo</a>* eprecord_ptr);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi,</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t* dataptr, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t &amp;nak_limit);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t OutTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t nbytes, uint8_t *data);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint8_t InTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t *nbytesptr, uint8_t *data);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span><span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t* dataptr);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">ctrlData</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr, <span class="keywordtype">boolean</span> direction);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">ctrlStatus</a>(uint8_t ep, <span class="keywordtype">boolean</span> direction, uint16_t nak_limit);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t* data);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* data);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">dispatchPkt</a>(uint8_t token, uint8_t ep, uint16_t nak_limit);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">Task</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nuint8_ts, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi,</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t* dataptr, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; uint8_t SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t &amp;nak_limit);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint8_t OutTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t nbytes, uint8_t *data);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint8_t InTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t *nbytesptr, uint8_t *data);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nuint8_ts, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00120">UsbCore.h:120</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00170">UsbCore.h:170</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00134">UsbCore.h:134</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00170">max3421e.h:170</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00124">UsbCore.h:124</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00138">UsbCore.h:138</a></div></div>
<div class="ttc" id="class_u_s_b_html_a59ee57083ba492d87ff2947547848d58"><div class="ttname"><a href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">USB::getEpInfoEntry</a></div><div class="ttdeci">EpInfo * getEpInfoEntry(uint8_t addr, uint8_t ep)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00044">Usb.cpp:44</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_abbad38caa1ca9c52f47adccd3a850aed"><div class="ttname"><a href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a></div><div class="ttdeci">#define USB_DESCRIPTOR_STRING</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00065">usb_ch9.h:65</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00164">UsbCore.h:164</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00081">usbhost.h:81</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00178">UsbCore.h:178</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00086">usbhost.h:86</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_a3572226ee2137c7fbf7487a02b0f560f"><div class="ttname"><a href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a></div><div class="ttdeci">#define USB_REQUEST_GET_DESCRIPTOR</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00037">usb_ch9.h:37</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac6d0566773ed4549fe1a7a932e6c46de"><div class="ttname"><a href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a></div><div class="ttdeci">#define USB_DESCRIPTOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00063">usb_ch9.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00097">UsbCore.h:97</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00119">UsbCore.h:119</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00145">UsbCore.h:145</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00126">UsbCore.h:126</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aa17b365c4eb8bd2f6a4d4e4fb5f881c7"><div class="ttname"><a href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a></div><div class="ttdeci">#define USB_DESCRIPTOR_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00064">usb_ch9.h:64</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00188">UsbCore.h:188</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00202">UsbCore.h:202</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="class_u_s_b_html_ab18915ffbd8a70ac5bd6abc3e0f3c66a"><div class="ttname"><a href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">USB::ctrlStatus</a></div><div class="ttdeci">uint8_t ctrlStatus(uint8_t ep, boolean direction, uint16_t nak_limit)</div></div>
<div class="ttc" id="class_u_s_b_html_a8ff8cd03496bdcb0ca26f18878ad299d"><div class="ttname"><a href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB::USB</a></div><div class="ttdeci">USB(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00025">Usb.cpp:25</a></div></div>
<div class="ttc" id="address_8h_html_a90edb051235924cb5280032df397f393"><div class="ttname"><a href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a></div><div class="ttdeci">void(* UsbDeviceHandleFunc)(UsbDevice *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00163">UsbCore.h:163</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00184">UsbCore.h:184</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00177">UsbCore.h:177</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00198">UsbCore.h:198</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff697d334dc611720419374acd1e5fb"><div class="ttname"><a href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">USB::setUsbTaskState</a></div><div class="ttdeci">void setUsbTaskState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00040">Usb.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00031">UsbCore.h:31</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00128">UsbCore.h:128</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad4929f74079f3bc22b00936ae84d18b0"><div class="ttname"><a href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a></div><div class="ttdeci">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00063">UsbCore.h:63</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00045">UsbCore.h:45</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad4929f74079f3bc22b00936ae84d18b0"><div class="ttname"><a href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a></div><div class="ttdeci">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00077">UsbCore.h:77</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00791">Usb.cpp:791</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac87659819bfd6491120c819fae2d46bc"><div class="ttname"><a href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a></div><div class="ttdeci">#define USB_REQUEST_SET_ADDRESS</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00036">usb_ch9.h:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae8ea2a106e94f5bb20be2fcbd4e402fb"><div class="ttname"><a href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a></div><div class="ttdeci">MAX3421e&lt; P10, P9 &gt; MAX3421E</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00027">UsbCore.h:27</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00171">UsbCore.h:171</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae8ea2a106e94f5bb20be2fcbd4e402fb"><div class="ttname"><a href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a></div><div class="ttdeci">MAX3421e&lt; P10, P9 &gt; MAX3421E</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00041">UsbCore.h:41</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00185">UsbCore.h:185</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="class_u_s_b_html_a1c1aad8269403bf488e3bc4c79886ce4"><div class="ttname"><a href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">USB::getUsbTaskState</a></div><div class="ttdeci">uint8_t getUsbTaskState(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00036">Usb.cpp:36</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00424">Usb.cpp:424</a></div></div>
<div class="ttc" id="class_address_pool_impl_html"><div class="ttname"><a href="class_address_pool_impl.html">AddressPoolImpl&lt; USB_NUMDEVICES &gt;</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a7f13c42ed2c8e72e1f63562576ca82d2"><div class="ttname"><a href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00136">UsbCore.h:136</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a7f13c42ed2c8e72e1f63562576ca82d2"><div class="ttname"><a href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00150">UsbCore.h:150</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00191">address.h:191</a></div></div>
<div class="ttc" id="class_u_s_b_html_a994f9488ac6f91040c42d9b816d202c6"><div class="ttname"><a href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">USB::ctrlData</a></div><div class="ttdeci">uint8_t ctrlData(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr, boolean direction)</div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00376">Usb.cpp:376</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00122">UsbCore.h:122</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00652">Usb.cpp:652</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a1cf695242e2e22893eea9c892282221b"><div class="ttname"><a href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00132">UsbCore.h:132</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00153">UsbCore.h:153</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00116">UsbCore.h:116</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00032">UsbCore.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00190">UsbCore.h:190</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a1cf695242e2e22893eea9c892282221b"><div class="ttname"><a href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00146">UsbCore.h:146</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00167">UsbCore.h:167</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00130">UsbCore.h:130</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00210">UsbCore.h:210</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00046">UsbCore.h:46</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00220">UsbCore.h:220</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aadef005acc40340955d34d9767ef297c"><div class="ttname"><a href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a></div><div class="ttdeci">#define USB_REQUEST_SET_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00040">usb_ch9.h:40</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00160">UsbCore.h:160</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00174">UsbCore.h:174</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00530">Usb.cpp:530</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00173">UsbCore.h:173</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00746">Usb.cpp:746</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Wii.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -91,13 +91,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Wii.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_wii_8h_source.html">Wii.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_wii_8h_source.html">Wii.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for Wii.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_wii_8cpp__incl.png" border="0" usemap="#_wii_8cpp" alt=""/></div>
<map name="_wii_8cpp" id="_wii_8cpp">
<area shape="rect" id="node2" href="_wii_8h.html" title="Wii.h" alt="" coords="68,83,119,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,161,216,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="7,238,63,266"/></map>
<area shape="rect" id="node2" href="_wii_8h.html" title="Wii.h" alt="" coords="68,79,119,104"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="7,225,63,251"/></map>
</div>
</div>
<p><a href="_wii_8cpp_source.html">Go to the source code of this file.</a></p>
@ -217,7 +217,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,6 +1,6 @@
<map id="Wii.cpp" name="Wii.cpp">
<area shape="rect" id="node2" href="$_wii_8h.html" title="Wii.h" alt="" coords="68,83,119,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,161,216,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,238,63,266"/>
<area shape="rect" id="node2" href="$_wii_8h.html" title="Wii.h" alt="" coords="68,79,119,104"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,152,64,177"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,152,217,177"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,225,63,251"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Wii.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -210,9 +210,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(!motionPlusInside) { <span class="comment">// The old Wiimote needs a delay after the first command or it will automatically reconnect</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>) {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDeactivating Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDeactivating Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"></span> initExtension1(); <span class="comment">// This will disable the Motion Plus extension</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; initExtension1(); <span class="comment">// This will disable the Motion Plus extension</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; timer = millis() + 1000; <span class="comment">// We have to wait for the message before the rest of the channels can be deactivated</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; } <span class="keywordflow">else</span></div>
@ -241,7 +241,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">//l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a>) {</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -254,7 +254,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
@ -272,7 +272,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
@ -283,7 +283,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; control_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; control_scid[1] = l2capinbuf[15];</div>
@ -317,16 +317,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a>) {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_dcid[0] &amp;&amp; l2capinbuf[13] == control_dcid[1]) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, control_dcid, control_scid);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">Reset</a>();</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_dcid[0] &amp;&amp; l2capinbuf[13] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">Reset</a>();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
@ -342,13 +342,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nL2CAP Interrupt&quot;), 0x80);</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[9] &gt;= 0x20 &amp;&amp; l2capinbuf[9] &lt;= 0x22) || (l2capinbuf[9] &gt;= 0x30 &amp;&amp; l2capinbuf[9] &lt;= 0x37) || l2capinbuf[9] == 0x3e || l2capinbuf[9] == 0x3f) { <span class="comment">// These reports include the buttons</span></div>
@ -368,11 +368,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!unknownExtensionConnected)</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; ButtonState = (uint32_t)((l2capinbuf[10] &amp; 0x1F) | ((uint16_t)(l2capinbuf[11] &amp; 0x9F) &lt;&lt; 8));</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;ButtonState: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;ButtonState: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; D_PrintHex&lt;uint32_t &gt; (ButtonState, 0x80);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
@ -385,42 +385,42 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">switch</span>(l2capinbuf[9]) {</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> 0x20: <span class="comment">// Status Information - (a1) 20 BB BB LF 00 00 VV</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nStatus report was received&quot;</span>), 0x80);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nStatus report was received&quot;</span>), 0x80);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"></span> wiiState = l2capinbuf[12]; <span class="comment">// (0x01: Battery is nearly empty), (0x02: An Extension Controller is connected), (0x04: Speaker enabled), (0x08: IR enabled), (0x10: LED1, 0x20: LED2, 0x40: LED3, 0x80: LED4)</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; wiiState = l2capinbuf[12]; <span class="comment">// (0x01: Battery is nearly empty), (0x02: An Extension Controller is connected), (0x04: Speaker enabled), (0x08: IR enabled), (0x10: LED1, 0x20: LED2, 0x40: LED3, 0x80: LED4)</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; batteryLevel = l2capinbuf[15]; <span class="comment">// Update battery level</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(l2capinbuf[12] &amp; 0x01)</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] &amp; 0x01)</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWARNING: Battery is nearly empty&quot;</span>), 0x80);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(checkExtension) { <span class="comment">// If this is false it means that the user must have called getBatteryLevel()</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span>(checkExtension) { <span class="comment">// If this is false it means that the user must have called getBatteryLevel()</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] &amp; 0x02) { <span class="comment">// Check if a extension is connected</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!unknownExtensionConnected)</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span>(!unknownExtensionConnected)</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"></span> unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"></span> setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - from Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - from Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"></span> <a class="code" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3">wii_clear_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>);</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3">wii_clear_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span>(!activateNunchuck) <span class="comment">// If it&#39;s already trying to initialize the Nunchuck don&#39;t set it to false</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">//else if(classicControllerConnected)</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a>) {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Nunchuck&quot;</span>), 0x80);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; - Nunchuck&quot;</span>), 0x80);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">false</span>; <span class="comment">// It must be the Nunchuck controller then</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">false</span>; <span class="comment">// It must be the Nunchuck controller then</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3">wii_clear_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; onInit();</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; setReportMode(<span class="keyword">false</span>, 0x31); <span class="comment">// If there is no extension connected we will read the buttons and accelerometer</span></div>
@ -435,48 +435,48 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// See: http://wiibrew.org/wiki/Wiimote/Extension_Controllers</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; l2capinbuf[17] == 0xA4 &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; l2capinbuf[19] == 0x00 &amp;&amp; l2capinbuf[20] == 0x00) {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"></span> <a class="code" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d">wii_set_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>);</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d">wii_set_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; (l2capinbuf[17] == 0xA6 || l2capinbuf[17] == 0xA4) &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; l2capinbuf[19] == 0x00 &amp;&amp; l2capinbuf[20] == 0x05) {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"></span> <a class="code" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d">wii_set_flag</a>(<a class="code" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d">wii_set_flag</a>(<a class="code" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; l2capinbuf[17] == 0xA4 &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; l2capinbuf[19] == 0x04 &amp;&amp; l2capinbuf[20] == 0x05) {</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus activated in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus activated in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"></span> setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; l2capinbuf[17] == 0xA4 &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; l2capinbuf[19] == 0x05 &amp;&amp; l2capinbuf[20] == 0x05) {</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus activated in Nunchuck pass-through mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus activated in Nunchuck pass-through mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"></span> activateNunchuck = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; activateNunchuck = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>()) <span class="comment">// Don&#39;t activate the Motion Plus if we are trying to initialize the IR camera</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"></span> setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; setReportMode(<span class="keyword">false</span>, 0x35); <span class="comment">// Also read the extension</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; l2capinbuf[17] == 0xA6 &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; (l2capinbuf[19] == 0x00 || l2capinbuf[19] == 0x04 || l2capinbuf[19] == 0x05 || l2capinbuf[19] == 0x07) &amp;&amp; l2capinbuf[20] == 0x05) {</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nInactive Wii Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nInactive Wii Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPlease unplug the Motion Plus, disconnect the Wiimote and then replug the Motion Plus Extension&quot;</span>), 0x80);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"></span> stateCounter = 300; <span class="comment">// Skip the rest in &quot;WII_CHECK_MOTION_PLUS_STATE&quot;</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; stateCounter = 300; <span class="comment">// Skip the rest in &quot;WII_CHECK_MOTION_PLUS_STATE&quot;</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[16] == 0x00 &amp;&amp; l2capinbuf[17] == 0xA4 &amp;&amp; l2capinbuf[18] == 0x20 &amp;&amp; l2capinbuf[19] == 0x01 &amp;&amp; l2capinbuf[20] == 0x20) {</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWii U Pro Controller connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWii U Pro Controller connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">wiiUProControllerConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">wiiUProControllerConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
@ -487,23 +487,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReport Error: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">case</span> 0x22: <span class="comment">// Acknowledge output report, return function result</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(l2capinbuf[13] != 0x00) { <span class="comment">// Check if there is an error</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[13] != 0x00) { <span class="comment">// Check if there is an error</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nCommand failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">case</span> 0x30: <span class="comment">// Core buttons - (a1) 30 BB BB</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">case</span> 0x31: <span class="comment">// Core Buttons and Accelerometer - (a1) 31 BB BB AA AA AA</span></div>
@ -512,7 +512,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">case</span> 0x33: <span class="comment">// Core Buttons with Accelerometer and 12 IR bytes - (a1) 33 BB BB AA AA AA II II II II II II II II II II II II</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"></span> <span class="comment">// Read the IR data</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="comment">// Read the IR data</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; IR_object_x1 = (l2capinbuf[15] | ((uint16_t)(l2capinbuf[17] &amp; 0x30) &lt;&lt; 4)); <span class="comment">// x position</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; IR_object_y1 = (l2capinbuf[16] | ((uint16_t)(l2capinbuf[17] &amp; 0xC0) &lt;&lt; 2)); <span class="comment">// y position</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; IR_object_s1 = (l2capinbuf[17] &amp; 0x0F); <span class="comment">// size value, 0-15</span></div>
@ -529,7 +529,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; IR_object_y4 = (l2capinbuf[25] | ((uint16_t)(l2capinbuf[26] &amp; 0xC0) &lt;&lt; 2));</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; IR_object_s4 = (l2capinbuf[26] &amp; 0x0F);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">case</span> 0x34: <span class="comment">// Core Buttons with 19 Extension bytes - (a1) 34 BB BB EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE EE</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">/* 0x3e and 0x3f both give unknown report types when report mode is 0x3e or 0x3f with mode number 0x05 */</span></div>
@ -598,9 +598,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span>((micros() - timer) &gt; 1000000) { <span class="comment">// Loop for 1 sec before resetting the values</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe gyro values has been reset&quot;</span>), 0x80);</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe gyro values has been reset&quot;</span>), 0x80);</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">gyroYawZero</a> = (l2capinbuf[15] | ((l2capinbuf[18] &amp; 0xFC) &lt;&lt; 6));</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">gyroYawZero</a> = (l2capinbuf[15] | ((l2capinbuf[18] &amp; 0xFC) &lt;&lt; 6));</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">gyroRollZero</a> = (l2capinbuf[16] | ((l2capinbuf[19] &amp; 0xFC) &lt;&lt; 6));</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">gyroPitchZero</a> = (l2capinbuf[17] | ((l2capinbuf[20] &amp; 0xFC) &lt;&lt; 6));</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
@ -631,17 +631,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; extensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension connected to Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension connected to Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span>(extensionConnected &amp;&amp; !unknownExtensionConnected) {</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; extensionConnected = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected from Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected from Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">false</span>; <span class="comment">// There is no extension connected to the Motion Plus if this report is sent</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">false</span>; <span class="comment">// There is no extension connected to the Motion Plus if this report is sent</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
@ -659,12 +659,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; L2CAP_task();</div>
@ -677,18 +677,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"></span> l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; delay(1);</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; identifier++;</div>
@ -703,9 +703,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)) {</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; identifier++;</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
@ -714,9 +714,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; identifier++;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; }</div>
@ -725,9 +725,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)) {</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; identifier++;</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
@ -736,9 +736,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; stateCounter = 0;</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088">WII_CHECK_MOTION_PLUS_STATE</a>;</div>
@ -748,11 +748,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">/* The next states are in run() */</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>) &amp;&amp; millis() &gt; timer) {</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>) &amp;&amp; ((<span class="keywordtype">long</span>)(millis() - timer) &gt;= 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>)) {</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; identifier++;</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, identifier, control_scid, control_dcid);</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div>
@ -761,9 +761,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
@ -773,7 +773,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;}</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
<div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72"> 684</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72">WII::Run</a>() {</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">if</span>(l2cap_state == <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a> &amp;&amp; millis() &gt; timer)</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">if</span>(l2cap_state == <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a> &amp;&amp; ((<span class="keywordtype">long</span>)(millis() - timer) &gt;= 0<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a>))</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; L2CAP_task(); <span class="comment">// Call the rest of the disconnection routine after we have waited long enough</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
@ -783,18 +783,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; motionPlusInside = pBtd-&gt;<a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"></span> hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; identifier = 0;</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; delay(1);</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, control_dcid, control_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; identifier++;</div>
@ -806,10 +806,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088">WII_CHECK_MOTION_PLUS_STATE</a>:</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print onnce</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print onnce</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking if a Motion Plus is connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"></span> stateCounter++;</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; stateCounter++;</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span>(stateCounter % 200 == 0)</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; checkMotionPresent(); <span class="comment">// Check if there is a motion plus connected</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_wii_8h.html#ac551aee34d131e9407d9e0ede81e9cbe">wii_check_flag</a>(<a class="code" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>)) {</div>
@ -819,26 +819,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span>(unknownExtensionConnected) {</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nA extension is also connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nA extension is also connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"></span> activateNunchuck = <span class="keyword">true</span>; <span class="comment">// For we will just set this to true as this the only extension supported so far</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; activateNunchuck = <span class="keyword">true</span>; <span class="comment">// For we will just set this to true as this the only extension supported so far</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stateCounter == 601) { <span class="comment">// We will try three times to check for the motion plus</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo Motion Plus was detected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo Motion Plus was detected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"></span> stateCounter = 0;</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; stateCounter = 0;</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8">WII_CHECK_EXTENSION_STATE</a>;</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8">WII_CHECK_EXTENSION_STATE</a>: <span class="comment">// This is used to check if there is anything plugged in to the extension port</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print onnce</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print onnce</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking if there is any extension connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor"></span> stateCounter++; <span class="comment">// We use this counter as there has to be a short delay between the commands</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; stateCounter++; <span class="comment">// We use this counter as there has to be a short delay between the commands</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span>(stateCounter == 1)</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; statusRequest(); <span class="comment">// See if a new device has connected</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span>(stateCounter == 100) {</div>
@ -883,10 +883,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span>(unknownExtensionConnected) {</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print once</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span>(stateCounter == 0) <span class="comment">// Only print once</span></div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking extension port&quot;</span>), 0x80);</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"></span> stateCounter++; <span class="comment">// We will use this counter as there has to be a short delay between the commands</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; stateCounter++; <span class="comment">// We will use this counter as there has to be a short delay between the commands</span></div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">if</span>(stateCounter == 50)</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; statusRequest();</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stateCounter == 100)</div>
@ -901,9 +901,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stateCounter == 250) {</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_wii_8h.html#ac551aee34d131e9407d9e0ede81e9cbe">wii_check_flag</a>(<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>)) {</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck was reconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck was reconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor"></span> activateNunchuck = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; activateNunchuck = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>)</div>
@ -911,9 +911,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stateCounter == 300) {</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>) {</div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReactivating the Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReactivating the Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"></span> initMotionPlus();</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; initMotionPlus();</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; stateCounter = 449;</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stateCounter == 350)</div>
@ -1076,21 +1076,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; uint8_t buf[1];</div>
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">if</span>(pBtd-&gt;<a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>) {</div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor"></span> buf[0] = 0x00; <span class="comment">// It seems like you can send anything but 0x04, 0x05, and 0x07</span></div>
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; buf[0] = 0x00; <span class="comment">// It seems like you can send anything but 0x04, 0x05, and 0x07</span></div>
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(activateNunchuck) {</div>
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in pass-through mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in pass-through mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="preprocessor"></span> buf[0] = 0x05; <span class="comment">// Activate nunchuck pass-through mode</span></div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; buf[0] = 0x05; <span class="comment">// Activate nunchuck pass-through mode</span></div>
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; }<span class="comment">//else if(classicControllerConnected &amp;&amp; extensionConnected)</span></div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="comment">//buf[0] = 0x07;</span></div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor"></span> buf[0] = 0x04; <span class="comment">// Don&#39;t use any extension</span></div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; buf[0] = 0x04; <span class="comment">// Don&#39;t use any extension</span></div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; writeData(0xA600FE, 1, buf);</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;}</div>
@ -1183,65 +1183,65 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
<div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5"> 1096</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">WII::IRinitialize</a>() { <span class="comment">// Turns on and initialises the IR camera</span></div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; enableIRCamera1();</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera1 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera1 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; delay(80);</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; enableIRCamera2();</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera2 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera2 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; delay(80);</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; write0x08Value();</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote hex number 0x08&quot;</span>), 0x80);</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote hex number 0x08&quot;</span>), 0x80);</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; delay(80);</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; writeSensitivityBlock1();</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 1&quot;</span>), 0x80);</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 1&quot;</span>), 0x80);</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; delay(80);</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; writeSensitivityBlock2();</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 2&quot;</span>), 0x80);</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 2&quot;</span>), 0x80);</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; delay(80);</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; uint8_t mode_num = 0x03;</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; setWiiModeNumber(mode_num); <span class="comment">// Change input for whatever mode you want i.e. 0x01, 0x03, or 0x05</span></div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Wii Mode Number To 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Wii Mode Number To 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; D_PrintHex&lt;uint8_t &gt; (mode_num, 0x80);</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; delay(80);</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; write0x08Value();</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Hex Number 0x08&quot;</span>), 0x80);</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Hex Number 0x08&quot;</span>), 0x80);</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; delay(80);</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; setReportMode(<span class="keyword">false</span>, 0x33);</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="comment">//setReportMode(false, 0x3f); // For full reporting mode, doesn&#39;t work yet</span></div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Report Mode to 0x33&quot;</span>), 0x80);</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Report Mode to 0x33&quot;</span>), 0x80);</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; delay(80);</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; statusRequest(); <span class="comment">// Used to update wiiState - call isIRCameraEnabled() afterwards to check if it actually worked</span></div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nIR Initialized&quot;</span>), 0x80);</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nIR Initialized&quot;</span>), 0x80);</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;}</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="keywordtype">void</span> WII::enableIRCamera1() {</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; uint8_t cmd_buf[3];</div>
@ -1295,7 +1295,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00507">BTD.h:507</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00122">controllerEnums.h:122</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00149">controllerEnums.h:149</a></div></div>
<div class="ttc" id="class_w_i_i_html_a749ea9dd39ba9a5320c5b24ce93bc544"><div class="ttname"><a href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">WII::gyroPitchRaw</a></div><div class="ttdeci">int16_t gyroPitchRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00271">Wii.h:271</a></div></div>
<div class="ttc" id="_wii_8h_html_ac88349598e4482a310450e34af9b7ce3"><div class="ttname"><a href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3">wii_clear_flag</a></div><div class="ttdeci">#define wii_clear_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00032">Wii.h:32</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00143">BTD.h:143</a></div></div>
@ -1319,7 +1319,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_w_i_i_html_a2a0e4745bff7cfec644bcebe984c2bc8"><div class="ttname"><a href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8">WII::gyroRoll</a></div><div class="ttdeci">double gyroRoll</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00249">Wii.h:249</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0d9c869bd3677c4488a586c38558a137"><div class="ttname"><a href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">WII::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00866">Wii.cpp:866</a></div></div>
<div class="ttc" id="class_w_i_i_html_a769ee2f9a0088da097438bc3cc677f7c"><div class="ttname"><a href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">WII::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00104">Wii.cpp:104</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6b3038e881952934873fd533de842670"><div class="ttname"><a href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670">TURN_ON_LED</a></div><div class="ttdeci">#define TURN_ON_LED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00129">BTD.h:129</a></div></div>
<div class="ttc" id="class_w_i_i_html_a42af5743d2e3c2dbc01ea0b5531cc7c6"><div class="ttname"><a href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">WII::accZnunchuck</a></div><div class="ttdeci">int16_t accZnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00242">Wii.h:242</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae946f7d6e9ce89fb083f5f138c0736c2"><div class="ttname"><a href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">WII::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00919">Wii.cpp:919</a></div></div>
@ -1347,7 +1347,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_w_i_i_html_a6597cb0e240a8ccb4ebdb236daef712e"><div class="ttname"><a href="class_w_i_i.html#a6597cb0e240a8ccb4ebdb236daef712e">WII::WII</a></div><div class="ttdeci">WII(BTD *p, bool pair=false)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00085">Wii.cpp:85</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3fb552c6ad486e23434dcb347a2a4b84"><div class="ttname"><a href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84">WII::rollGyroSpeed</a></div><div class="ttdeci">double rollGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00256">Wii.h:256</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a990925c3f1ef4962db33ab74d79976e8"><div class="ttname"><a href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8">WII_CHECK_EXTENSION_STATE</a></div><div class="ttdeci">#define WII_CHECK_EXTENSION_STATE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00132">BTD.h:132</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00124">controllerEnums.h:124</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00503">BTD.h:503</a></div></div>
<div class="ttc" id="class_b_t_d_html_a962a5714c225dcb633434f02e3657583"><div class="ttname"><a href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">BTD::wiiUProController</a></div><div class="ttdeci">bool wiiUProController</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00513">BTD.h:513</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
@ -1356,10 +1356,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00145">BTD.h:145</a></div></div>
<div class="ttc" id="_wii_8h_html_a34631633d4557244dc8eda52e8505acd"><div class="ttname"><a href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a></div><div class="ttdeci">#define WII_FLAG_MOTION_PLUS_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00027">Wii.h:27</a></div></div>
<div class="ttc" id="_wii_8cpp_html_ac7b2bb3deb6df67209b21af40412bc11"><div class="ttname"><a href="_wii_8cpp.html#ac7b2bb3deb6df67209b21af40412bc11">WII_LEDS</a></div><div class="ttdeci">const uint8_t WII_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00025">Wii.cpp:25</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_w_i_i_html_ac94e8b9ce6d3f914f0e3ee4fba82efa3"><div class="ttname"><a href="class_w_i_i.html#ac94e8b9ce6d3f914f0e3ee4fba82efa3">WII::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01048">Wii.cpp:1048</a></div></div>
<div class="ttc" id="class_w_i_i_html_aa2c14275d9e482e6add06cb34ccf1197"><div class="ttname"><a href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">WII::accYwiimote</a></div><div class="ttdeci">int16_t accYwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00236">Wii.h:236</a></div></div>
<div class="ttc" id="class_w_i_i_html_a461f5b7a5f2bc874e107fc776c284b16"><div class="ttname"><a href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">WII::wiiUProControllerConnected</a></div><div class="ttdeci">bool wiiUProControllerConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00210">Wii.h:210</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaef31cc6fe9479955961311ee18ac205f">L</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00096">controllerEnums.h:96</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00160">BTD.h:160</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2c5c32841b020b248f757cb793acb936"><div class="ttname"><a href="class_w_i_i.html#a2c5c32841b020b248f757cb793acb936">WII::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00860">Wii.cpp:860</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
@ -1400,10 +1401,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_b_t_d_8h_html_aad823543553cc7500ac49d7479eb858f"><div class="ttname"><a href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_INTERRUPT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00144">BTD.h:144</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5f035450f226204f021e69ad1faa2e3a"><div class="ttname"><a href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a></div><div class="ttdeci">#define l2cap_set_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00161">BTD.h:161</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01248">BTD.cpp:1248</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00120">controllerEnums.h:120</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00147">controllerEnums.h:147</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7b183fe1809c1c595438e930b8f3f4de"><div class="ttname"><a href="class_w_i_i.html#a7b183fe1809c1c595438e930b8f3f4de">WII::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01041">Wii.cpp:1041</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00137">BTD.h:137</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00118">controllerEnums.h:118</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00145">controllerEnums.h:145</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="class_w_i_i_html_a72bd4fad2e524276712a154b8cc2a16c"><div class="ttname"><a href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">WII::motionPlusConnected</a></div><div class="ttdeci">bool motionPlusConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00208">Wii.h:208</a></div></div>
<div class="ttc" id="class_w_i_i_html_a10d91cd5d73bc655be776b44d27004c9"><div class="ttname"><a href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">WII::gyroRollZero</a></div><div class="ttdeci">int16_t gyroRollZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00277">Wii.h:277</a></div></div>
@ -1418,7 +1419,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Wii.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -93,21 +93,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Wii.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for Wii.h:</div>
<div class="dyncontent">
<div class="center"><img src="_wii_8h__incl.png" border="0" usemap="#_wii_8h" alt=""/></div>
<map name="_wii_8h" id="_wii_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,83,64,111"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,83,216,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,161,63,189"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,79,217,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_wii_8h__dep__incl.png" border="0" usemap="#_wii_8hdep" alt=""/></div>
<map name="_wii_8hdep" id="_wii_8hdep">
<area shape="rect" id="node2" href="_wii_8cpp.html" title="Wii.cpp" alt="" coords="5,83,69,111"/></map>
<area shape="rect" id="node2" href="_wii_8cpp.html" title="Wii.cpp" alt="" coords="5,79,70,104"/></map>
</div>
</div>
<p><a href="_wii_8h_source.html">Go to the source code of this file.</a></p>
@ -232,10 +232,10 @@ Enumerations</h2></td></tr>
</div><div class="memdoc">
<p>Enum used to read the joystick on the Nunchuck. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"></a>HatX</em>&#160;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"></a>HatX&#160;</td><td class="fielddoc">
<p>Read the x-axis on the Nunchuck joystick. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"></a>HatY</em>&#160;</td><td class="fielddoc">
<tr><td class="fieldname"><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"></a>HatY&#160;</td><td class="fielddoc">
<p>Read the y-axis on the Nunchuck joystick. </p>
</td></tr>
</table>
@ -249,7 +249,7 @@ Enumerations</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,3 +1,3 @@
<map id="Wii.h" name="Wii.h">
<area shape="rect" id="node2" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="5,83,69,111"/>
<area shape="rect" id="node2" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="5,79,70,104"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,5 +1,5 @@
<map id="Wii.h" name="Wii.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,83,64,111"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,83,216,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,161,63,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,79,64,104"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="88,79,217,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="7,152,63,177"/>
</map>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: Wii.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -109,19 +109,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef _wii_h_</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _wii_h_</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define _wii_h_</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">/* Wii event flags */</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd"> 27</a></span>&#160;<span class="preprocessor">#define WII_FLAG_MOTION_PLUS_CONNECTED 0x01</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61"> 28</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_FLAG_NUNCHUCK_CONNECTED 0x02</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61"> 28</a></span>&#160;<span class="preprocessor">#define WII_FLAG_NUNCHUCK_CONNECTED 0x02</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac551aee34d131e9407d9e0ede81e9cbe"> 30</a></span>&#160;<span class="preprocessor">#define wii_check_flag(flag) (wii_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d"> 31</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define wii_set_flag(flag) (wii_event_flag |= (flag))</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define wii_clear_flag(flag) (wii_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d"> 31</a></span>&#160;<span class="preprocessor">#define wii_set_flag(flag) (wii_event_flag |= (flag))</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3"> 32</a></span>&#160;<span class="preprocessor">#define wii_clear_flag(flag) (wii_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4"> 35</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a> {</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"> 37</a></span>&#160; <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a> = 0,</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"> 39</a></span>&#160; <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b">HatY</a> = 1,</div>
@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9"> 277</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">gyroRollZero</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3"> 278</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">gyroPitchZero</a>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">IRinitialize</a>();</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d"> 292</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d">getIRx1</a>() {</div>
@ -279,7 +279,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> (wiiState &amp; 0x08);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; };</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
@ -346,7 +346,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; uint8_t batteryLevel;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"></span> <span class="comment">/* Private function and variables for the readings from the IR Camera */</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="comment">/* Private function and variables for the readings from the IR Camera */</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">void</span> enableIRCamera1(); <span class="comment">// Sets bit 2 of output report 13</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordtype">void</span> enableIRCamera2(); <span class="comment">// Sets bit 2 of output report 1A</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">void</span> writeSensitivityBlock1();</div>
@ -367,7 +367,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; uint16_t IR_object_y4;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; uint8_t IR_object_s4;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"></span>};</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;};</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_w_i_i_html_ae25a8ea1b0713801e0209e795b4596fa"><div class="ttname"><a href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">WII::wiimoteConnected</a></div><div class="ttdeci">bool wiimoteConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00199">Wii.h:199</a></div></div>
<div class="ttc" id="class_w_i_i_html_a749ea9dd39ba9a5320c5b24ce93bc544"><div class="ttname"><a href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">WII::gyroPitchRaw</a></div><div class="ttdeci">int16_t gyroPitchRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00271">Wii.h:271</a></div></div>
@ -388,7 +388,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_w_i_i_html_a0d9c869bd3677c4488a586c38558a137"><div class="ttname"><a href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">WII::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00866">Wii.cpp:866</a></div></div>
<div class="ttc" id="class_w_i_i_html_a769ee2f9a0088da097438bc3cc677f7c"><div class="ttname"><a href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">WII::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00104">Wii.cpp:104</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6ac037d884f97319892e8671ef070c03"><div class="ttname"><a href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03">WII::getRoll</a></div><div class="ttdeci">double getRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00120">Wii.h:120</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00143">controllerEnums.h:143</a></div></div>
<div class="ttc" id="class_w_i_i_html_a42af5743d2e3c2dbc01ea0b5531cc7c6"><div class="ttname"><a href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">WII::accZnunchuck</a></div><div class="ttdeci">int16_t accZnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00242">Wii.h:242</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae946f7d6e9ce89fb083f5f138c0736c2"><div class="ttname"><a href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">WII::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00919">Wii.cpp:919</a></div></div>
<div class="ttc" id="class_w_i_i_html_aabe4780f258dada1c0564a4ac7607370"><div class="ttname"><a href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">WII::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00118">Wii.cpp:118</a></div></div>
@ -413,7 +413,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_w_i_i_html_a5e778f879c6d0a73a94bd61e42d05b8d"><div class="ttname"><a href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d">WII::getIRy3</a></div><div class="ttdeci">uint16_t getIRy3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00348">Wii.h:348</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5d3b4a33ebc2ca9ebb154e10a05dbdd4"><div class="ttname"><a href="class_w_i_i.html#a5d3b4a33ebc2ca9ebb154e10a05dbdd4">WII::setLedStatus</a></div><div class="ttdeci">void setLedStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00906">Wii.cpp:906</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00072">controllerEnums.h:72</a></div></div>
<div class="ttc" id="class_w_i_i_html_ac94e8b9ce6d3f914f0e3ee4fba82efa3"><div class="ttname"><a href="class_w_i_i.html#ac94e8b9ce6d3f914f0e3ee4fba82efa3">WII::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01048">Wii.cpp:1048</a></div></div>
<div class="ttc" id="class_w_i_i_html_aa2c14275d9e482e6add06cb34ccf1197"><div class="ttname"><a href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">WII::accYwiimote</a></div><div class="ttdeci">int16_t accYwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00236">Wii.h:236</a></div></div>
<div class="ttc" id="class_w_i_i_html_a461f5b7a5f2bc874e107fc776c284b16"><div class="ttname"><a href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">WII::wiiUProControllerConnected</a></div><div class="ttdeci">bool wiiUProControllerConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00210">Wii.h:210</a></div></div>
@ -453,7 +453,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: WiiCameraReadme.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: WiiCameraReadme.md Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -98,14 +98,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; * In <span class="keyword">this</span> mode the camera outputs x and y coordinates and a size dimension <span class="keywordflow">for</span> the 4 brightest points.</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;Again, read through &lt;http:<span class="comment">//wiibrew.org/wiki/Wiimote#IR_Camera&gt; to get an understanding of the camera and its settings.</span></div>
<div class="ttc" id="settings_8h_html_a251a8e974ddd0680dbcefaa3a4ae9ae8"><div class="ttname"><a href="settings_8h.html#a251a8e974ddd0680dbcefaa3a4ae9ae8">ENABLE_WII_IR_CAMERA</a></div><div class="ttdeci">#define ENABLE_WII_IR_CAMERA</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00045">settings.h:45</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00147">PS3Enums.h:147</a></div></div>
<div class="ttc" id="settings_8h_html_a251a8e974ddd0680dbcefaa3a4ae9ae8"><div class="ttname"><a href="settings_8h.html#a251a8e974ddd0680dbcefaa3a4ae9ae8">ENABLE_WII_IR_CAMERA</a></div><div class="ttdeci">#define ENABLE_WII_IR_CAMERA</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00055">settings.h:55</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -3,7 +3,7 @@
<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.6"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>USB Host Shield 2.0: XBOXOLD.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -91,13 +91,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">XBOXOLD.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_x_b_o_x_o_l_d_8h_source.html">XBOXOLD.h</a>&quot;</code><br/>
<div class="textblock"><code>#include &quot;<a class="el" href="_x_b_o_x_o_l_d_8h_source.html">XBOXOLD.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for XBOXOLD.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_x_b_o_x_o_l_d_8cpp__incl.png" border="0" usemap="#_x_b_o_x_o_l_d_8cpp" alt=""/></div>
<map name="_x_b_o_x_o_l_d_8cpp" id="_x_b_o_x_o_l_d_8cpp">
<area shape="rect" id="node2" href="_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="42,83,139,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/></map>
<area shape="rect" id="node2" href="_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="42,79,139,104"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/></map>
</div>
</div>
<p><a href="_x_b_o_x_o_l_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -150,7 +150,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</a> 1.8.7
</small></address>
</body>
</html>

View file

@ -1,5 +1,5 @@
<map id="XBOXOLD.cpp" name="XBOXOLD.cpp">
<area shape="rect" id="node2" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="42,83,139,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,161,61,189"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,161,213,189"/>
<area shape="rect" id="node2" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="42,79,139,104"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="5,152,61,177"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="85,152,214,177"/>
</map>

Some files were not shown because too many files have changed in this diff Show more