Generated docs for mass storage

This commit is contained in:
Kristian Sloth Lauszus 2013-06-17 20:33:24 +02:00
parent c0e904f471
commit 744063e2fa
750 changed files with 11544 additions and 10666 deletions

View file

@ -7,8 +7,8 @@ This is the documentation for the USB Host Library.
It is generated using [Doxygen](http://www.stack.nl/~dimitri/doxygen/) and hosted using [Github Pages](https://help.github.com/categories/20/articles).
In order to build the documentation you will need the [Doxyfile](Doxyfile) and [imageStyle.css](imageStyle.css) files.
In order to build the documentation you will need the [Doxyfile](Doxyfile) and [imageStyle.css](imageStyle.css) file.
Also since there is a bug in Doxygen you will need to add \ in front of the @-sign in [Circuits@Home](https://github.com/felis/USB_Host_Shield_2.0#developed-by) in the [README.md](https://github.com/felis/USB_Host_Shield_2.0#developed-by) file.
Also please uncomment <code>\#define WIICAMERA</code> in [Wii.h](https://github.com/felis/USB_Host_Shield_2.0/blob/master/Wii.h).
Also please uncomment <code>\#define DEBUG</code> in [message.h](https://github.com/felis/USB_Host_Shield_2.0/blob/master/message.h) and <code>\#define WIICAMERA</code> in [Wii.h](https://github.com/felis/USB_Host_Shield_2.0/blob/master/Wii.h).

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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -85,8 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">BTD.cpp File Reference</div> </div>
</div><!--header-->
@ -97,37 +95,16 @@ 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="551,75,596,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="314,283,371,304"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="648,283,709,304"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="377,283,433,304"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="696,283,757,304"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/></map>
</div>
</div>
<p><a href="_b_t_d_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_d_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_d_8cpp_source.html#l00019">19</a> of file <a class="el" href="_b_t_d_8cpp_source.html">BTD.cpp</a>.</p>
</div>
</div>
</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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<map id="BTD.cpp" name="BTD.cpp">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="551,75,596,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="314,283,371,304"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="648,283,709,304"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="377,283,433,304"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="696,283,757,304"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/>
</map>

View file

@ -1 +1 @@
944056a1501ac9eff0011e11046b8aea
15e2215b6f2299b5052df2f131ec60f8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because it is too large Load diff

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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -99,7 +99,7 @@ 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="288,144,331,165"/><area shape="rect" id="node17" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,75,719,96"/><area shape="rect" id="node5" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,283,59,304"/><area shape="rect" id="node7" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,283,247,304"/><area shape="rect" id="node8" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,213,237,235"/><area shape="rect" id="node9" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,283,156,304"/><area shape="rect" id="node10" href="address_8h.html" title="address.h" alt="" coords="314,213,371,235"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="648,213,709,235"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="650,283,707,304"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,283,844,304"/><area shape="rect" id="node18" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,144,780,165"/></map>
<area shape="rect" id="node2" href="_usb_8h.html" title="Usb.h" alt="" coords="287,144,329,165"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,75,732,96"/><area shape="rect" id="node5" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,283,84,304"/><area shape="rect" id="node7" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,283,328,304"/><area shape="rect" id="node8" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,213,225,235"/><area shape="rect" id="node9" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,283,168,304"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="377,213,433,235"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="696,213,757,235"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="686,352,743,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,283,792,304"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,144,793,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -1471,7 +1471,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,13 +1,13 @@
<map id="BTD.h" name="BTD.h">
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,144,331,165"/>
<area shape="rect" id="node17" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,75,719,96"/>
<area shape="rect" id="node5" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,283,59,304"/>
<area shape="rect" id="node7" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,283,247,304"/>
<area shape="rect" id="node8" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,213,237,235"/>
<area shape="rect" id="node9" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,283,156,304"/>
<area shape="rect" id="node10" href="$address_8h.html" title="address.h" alt="" coords="314,213,371,235"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="648,213,709,235"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,283,707,304"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,283,844,304"/>
<area shape="rect" id="node18" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,144,780,165"/>
<area shape="rect" id="node2" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,144,329,165"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,75,732,96"/>
<area shape="rect" id="node5" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,283,84,304"/>
<area shape="rect" id="node7" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,283,328,304"/>
<area shape="rect" id="node8" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,213,225,235"/>
<area shape="rect" id="node9" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,283,168,304"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="377,213,433,235"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="696,213,757,235"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,352,743,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,283,792,304"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,144,793,165"/>
</map>

View file

@ -1 +1 @@
5127aae891f6acd678ae45f8beb12100
7590baa2d3759abe3fcc949b887c64ce

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 76 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 129</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="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 131</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0"> 132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BTD_NUMSERVICES 4 // Max number of Bluetooth services</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0"> 132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BTD_NUMSERVICES 4 // Max number of Bluetooth services - if you need more than four simply increase this number</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="class_bluetooth_service.html"> 135</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">public</span>:</div>
@ -364,7 +364,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -85,8 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">PS3BT.cpp File Reference</div> </div>
</div><!--header-->
@ -97,37 +95,16 @@ 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="525,75,579,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="489,144,535,165"/><area shape="rect" id="node21" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="559,144,628,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="619,283,661,304"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="297,213,380,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="845,421,899,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="671,421,737,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="762,352,819,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="761,421,820,443"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="578,352,635,373"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="308,352,369,373"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="210,421,267,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="73,421,135,443"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="187,283,252,304"/><area shape="rect" id="node22" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="550,213,636,235"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="477,75,531,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="442,144,487,165"/><area shape="rect" id="node22" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="511,144,581,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="590,283,633,304"/><area shape="rect" id="node20" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="195,213,278,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="879,421,933,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="585,421,651,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="744,352,801,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="675,421,734,443"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="485,352,542,373"/><area shape="rect" id="node16" href="message_8h.html" title="message.h" alt="" coords="171,352,233,373"/><area shape="rect" id="node18" href="printhex_8h.html" title="printhex.h" alt="" coords="153,491,210,512"/><area shape="rect" id="node19" href="hexdump_8h.html" title="hexdump.h" alt="" coords="171,421,233,443"/><area shape="rect" id="node21" href="parsetools_8h.html" title="parsetools.h" alt="" coords="133,283,198,304"/><area shape="rect" id="node23" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="503,213,589,235"/></map>
</div>
</div>
<p><a href="_p_s3_b_t_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8cpp_source.html#l00019">19</a> of file <a class="el" href="_p_s3_b_t_8cpp_source.html">PS3BT.cpp</a>.</p>
</div>
</div>
</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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,17 +1,17 @@
<map id="PS3BT.cpp" name="PS3BT.cpp">
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="525,75,579,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="489,144,535,165"/>
<area shape="rect" id="node21" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="559,144,628,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="619,283,661,304"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="297,213,380,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="845,421,899,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="671,421,737,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="762,352,819,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="761,421,820,443"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="578,352,635,373"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="308,352,369,373"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="210,421,267,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="73,421,135,443"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="187,283,252,304"/>
<area shape="rect" id="node22" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="550,213,636,235"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="477,75,531,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="442,144,487,165"/>
<area shape="rect" id="node22" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="511,144,581,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="590,283,633,304"/>
<area shape="rect" id="node20" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="195,213,278,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="879,421,933,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="585,421,651,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="744,352,801,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="675,421,734,443"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="485,352,542,373"/>
<area shape="rect" id="node16" href="$message_8h.html" title="message.h" alt="" coords="171,352,233,373"/>
<area shape="rect" id="node18" href="$printhex_8h.html" title="printhex.h" alt="" coords="153,491,210,512"/>
<area shape="rect" id="node19" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="171,421,233,443"/>
<area shape="rect" id="node21" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="133,283,198,304"/>
<area shape="rect" id="node23" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="503,213,589,235"/>
</map>

View file

@ -1 +1 @@
aee95b9f8dc4f9ab59f10b0141c407bb
b3ed17f5aee67e9e9bf7a1eeff08c5fa

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 82 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<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">#include &quot;<a class="code" href="_p_s3_b_t_8h.html">PS3BT.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="_p_s3_b_t_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83"> 19</a></span>&#160;<span class="preprocessor">#define DEBUG // Uncomment to print data for debugging</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span><span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// To enable serial debugging uncomment &quot;#define DEBUG_USB_HOST&quot; in message.h</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the PS3 Controllers</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"><a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7"> 23</a></span>&#160;<a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT::PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, uint8_t btadr5, uint8_t btadr4, uint8_t btadr3, uint8_t btadr2, uint8_t btadr1, uint8_t btadr0) :</div>
@ -346,11 +346,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; l2cap_state = <a class="code" href="_p_s3_b_t_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 30; i++)</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; remote_name[i] = pBtd-&gt;<a class="code" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">remote_name</a>[i]; <span class="comment">// Store the remote name for the connection</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;#ifdef <a class="code" href="_p_s3_b_t_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;#ifdef DEBUG_USB_HOST</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; if (pBtd-&gt;<a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a> &lt; 3) { <span class="comment">// Check the HCI Version of the Bluetooth dongle</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nYour dongle may not support reading the analog buttons, sensors and status\r\nYour HCI Version is: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(pBtd-&gt;<a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>, 0x80);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nYour dongle may not support reading the analog buttons, sensors and status\r\nYour HCI Version is: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(pBtd-&gt;<a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>, 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\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="l00263"></a><span class="lineno"> 263</span>&#160; }</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> }</div>
@ -361,31 +361,31 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; l2capinbuf[i] = ACLData[i];</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001) { <span class="comment">//l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80); </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\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; Data: &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; Data: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</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="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</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="l00290"></a><span class="lineno"> 290</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</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="l00292"></a><span class="lineno"> 292</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &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; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 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> <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>
@ -421,15 +421,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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">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="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</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>
@ -448,7 +448,7 @@ 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;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling 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\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</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;<span class="preprocessor">#endif</span></div>
@ -473,9 +473,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00382"></a><span class="lineno"> 382</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="l00383"></a><span class="lineno"> 383</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="l00384"></a><span class="lineno"> 384</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[i], 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</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="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</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="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
@ -488,8 +488,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">switch</span> (l2cap_state) {</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>) {</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</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="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</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="l00404"></a><span class="lineno"> 404</span>&#160; delay(1);</div>
@ -502,8 +502,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ad98e60fcc8acca70e545ba7c248af65a">L2CAP_CONTROL_REQUEST</a>:</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a48b27c08aa64a339eb1d358707927d3e">l2cap_config_request_control_flag</a>) {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Configuration Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Configuration Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; l2cap_state = <a class="code" href="_p_s3_b_t_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
@ -512,16 +512,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>) {</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</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="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"></span> l2cap_state = <a class="code" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</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; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>) {</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</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\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</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="l00436"></a><span class="lineno"> 436</span>&#160; delay(1);</div>
@ -535,8 +535,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#a0c004c746b90f2c8025bb1ddd20d811a">L2CAP_INTERRUPT_REQUEST</a>:</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#ad5c6ab585a398e53f2ee5616fe0d4346">l2cap_config_request_interrupt_flag</a>) {</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Configuration Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Configuration Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; l2cap_state = <a class="code" href="_p_s3_b_t_8h.html#ac2fdeba844d7f2021e0aed9616aad5e4">L2CAP_INTERRUPT_SUCCESS</a>;</div>
@ -544,8 +544,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ac2fdeba844d7f2021e0aed9616aad5e4">L2CAP_INTERRUPT_SUCCESS</a>:</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a>) {</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</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="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</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="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>; i++) <span class="comment">// Reset l2cap in buffer as it sometimes read it as a button has been pressed</span></div>
@ -564,8 +564,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>) {</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</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="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</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>
@ -575,8 +575,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>) {</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</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="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</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="l00491"></a><span class="lineno"> 491</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
@ -608,21 +608,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00517"></a><span class="lineno"> 517</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="l00518"></a><span class="lineno"> 518</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="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad400e1ce37c2dadd48938187b5021d42">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</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="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</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="l00524"></a><span class="lineno"> 524</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="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad400e1ce37c2dadd48938187b5021d42">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a>); <span class="comment">// This just turns LED constantly on, on the Navigation controller</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</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="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</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="l00530"></a><span class="lineno"> 530</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="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743">Red</a>);</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; timerBulbRumble = millis();</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Enabled\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</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="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</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="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
@ -688,7 +688,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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;</div>
<div class="line"><a name="l00599"></a><span class="lineno"><a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb"> 599</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="l00600"></a><span class="lineno"> 600</span>&#160; HIDBuffer[11] = value;</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; HIDBuffer[11] = value &lt;&lt; 1;</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</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="l00602"></a><span class="lineno"> 602</span>&#160;}</div>
<div class="line"><a name="l00603"></a><span class="lineno"><a class="code" href="class_p_s3_b_t.html#aa84e4cb30f827c8d8d981c1de82c53ad"> 603</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#aa84e4cb30f827c8d8d981c1de82c53ad">PS3BT::setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
@ -741,9 +741,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;}</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
<div class="line"><a name="l00652"></a><span class="lineno"><a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689"> 652</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="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></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> <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="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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="l00655"></a><span class="lineno"> 655</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="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"></span> <span class="comment">//set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; HIDMoveBuffer[7] = rumble;</div>
@ -755,7 +755,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -99,7 +99,7 @@ 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="489,75,535,96"/><area shape="rect" id="node20" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="559,75,628,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="619,213,661,235"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="297,144,380,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="845,352,899,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="671,352,737,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="762,283,819,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="761,352,820,373"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="578,283,635,304"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="308,283,369,304"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="210,352,267,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="73,352,135,373"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="187,213,252,235"/><area shape="rect" id="node21" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="550,144,636,165"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="442,75,487,96"/><area shape="rect" id="node21" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="511,75,581,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="590,213,633,235"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="195,144,278,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="879,352,933,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="585,352,651,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="744,283,801,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="675,352,734,373"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="485,283,542,304"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="171,283,233,304"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="153,421,210,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="171,352,233,373"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="133,213,198,235"/><area shape="rect" id="node22" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="503,144,589,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -573,7 +573,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,16 +1,16 @@
<map id="PS3BT.h" name="PS3BT.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="489,75,535,96"/>
<area shape="rect" id="node20" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="559,75,628,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="619,213,661,235"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="297,144,380,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="845,352,899,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="671,352,737,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="762,283,819,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="761,352,820,373"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="578,283,635,304"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="308,283,369,304"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="210,352,267,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="73,352,135,373"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="187,213,252,235"/>
<area shape="rect" id="node21" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="550,144,636,165"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="442,75,487,96"/>
<area shape="rect" id="node21" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="511,75,581,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="590,213,633,235"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="195,144,278,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="879,352,933,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="585,352,651,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="744,283,801,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="675,352,734,373"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="485,283,542,304"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="171,283,233,304"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="153,421,210,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="171,352,233,373"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="133,213,198,235"/>
<area shape="rect" id="node22" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="503,144,589,165"/>
</map>

View file

@ -1 +1 @@
6630a4e7e61f93b1abda0bc89fee8c54
142644e07dee613f168dcc68a8cb7912

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 81 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -229,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -569,7 +569,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -266,7 +266,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -85,8 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">PS3USB.cpp File Reference</div> </div>
</div><!--header-->
@ -97,37 +95,16 @@ 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="441,75,500,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/><area shape="rect" id="node18" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="653,144,723,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="701,213,757,235"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/></map>
<area shape="rect" id="node2" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="349,75,408,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/><area shape="rect" id="node19" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="580,144,649,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="350,213,407,235"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/><area shape="rect" id="node20" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/></map>
</div>
</div>
<p><a href="_p_s3_u_s_b_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_u_s_b_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_u_s_b_8cpp_source.html#l00019">19</a> of file <a class="el" href="_p_s3_u_s_b_8cpp_source.html">PS3USB.cpp</a>.</p>
</div>
</div>
</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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<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="441,75,500,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/>
<area shape="rect" id="node18" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="653,144,723,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="701,213,757,235"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/>
<area shape="rect" id="node2" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="349,75,408,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/>
<area shape="rect" id="node19" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="580,144,649,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="350,213,407,235"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/>
<area shape="rect" id="node20" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/>
</map>

View file

@ -1 +1 @@
9291913c3b181df51a6c28b65d6f85e4
f5ae29b491763e0d6c2c12dc912b90be

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 62 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<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">#include &quot;<a class="code" href="_p_s3_u_s_b_8h.html">PS3USB.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="_p_s3_u_s_b_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83"> 19</a></span>&#160;<span class="preprocessor">#define DEBUG // Uncomment to print data for debugging</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span><span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// To enable serial debugging uncomment &quot;#define DEBUG_USB_HOST&quot; in message.h</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the PS3 Controllers</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"><a class="code" href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502"> 23</a></span>&#160;<a class="code" href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a>(<a class="code" href="class_u_s_b.html">USB</a> *p, uint8_t btadr5, uint8_t btadr4, uint8_t btadr3, uint8_t btadr2, uint8_t btadr1, uint8_t btadr0) :</div>
@ -145,12 +145,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</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="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3USB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</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="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_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; }</div>
@ -159,15 +159,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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; <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_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; }</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; <span class="keywordflow">if</span> (!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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"> 92</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rcode = <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rcode = <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
@ -209,14 +209,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00118"></a><span class="lineno"> 118</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="l00119"></a><span class="lineno"> 119</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="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a> = 0;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nsetAddr: &quot;</span>), 0x80);</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\nsetAddr: &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> PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> rcode;</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;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</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; 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="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> p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
@ -264,13 +264,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</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="l00175"></a><span class="lineno"> 175</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="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDualshock 3 Controller Connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</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="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</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="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// must be a navigation controller</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNavigation Controller Connected&quot;</span>), 0x80);</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\nNavigation Controller Connected&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> <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="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
@ -286,8 +286,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 6; i &lt; 10; i++)</div>
<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</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Controller Connected&quot;</span>), 0x80);</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="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="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3be69a3c6e24bf2b53bc06c85829e62a">setMoveBdaddr</a>(my_bdaddr); <span class="comment">// Set internal bluetooth address</span></div>
@ -296,335 +296,345 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00205"></a><span class="lineno"> 205</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="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nBluetooth Address was set to: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (int8_t i = 5; i &gt; 0; i--) {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; PrintHex&lt;uint8_t &gt; (my_bdaddr[i], 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</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="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; PrintHex&lt;uint8_t &gt; (my_bdaddr[0], 0x80);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 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;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; timer = millis();</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// successful configuration</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">/* diagnostic messages */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="message_8cpp.html#ace40a5d826a882de0c5a25aece111d3f">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSetDevTblEntry:</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="message_8cpp.html#aa65008f9251787149e391f89e68b32be">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSetConfDescr:</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="message_8cpp.html#a08b840c377ca6f8154d6924d51338d89">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="message_8cpp.html#a7103129ed2b7b7896461c0a3cd924eb4">NotifyFailUnknownDevice</a>(VID,PID);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; Fail:</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;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a5ae2cb9bf877595104f2425f50e2057f">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">Release</a>();</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> rcode;</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">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98"> 248</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a>() {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <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>().<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="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a> = 0;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; bPollEnable = <span class="keyword">false</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"><a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00"> 258</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a>() {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> 0;</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="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> || <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint16_t BUFFER_SIZE = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].epAddr, &amp;BUFFER_SIZE, readBuf); <span class="comment">// input on endpoint 1</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</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="l00266"></a><span class="lineno"> 266</span>&#160; readReport();</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</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="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</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="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</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>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; timer = millis();</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</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="keywordflow">return</span> 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="keywordtype">void</span> PS3USB::readReport() {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</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; ButtonState = (uint32_t)(readBuf[2] | ((uint16_t)readBuf[3] &lt;&lt; 8) | ((uint32_t)readBuf[4] &lt;&lt; 16));</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; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;, 0x80);</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></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; <span class="keywordflow">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; OldButtonState = ButtonState;</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;}</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;<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="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</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="l00301"></a><span class="lineno"> 301</span>&#160; PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</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; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&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>}</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141"> 308</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141">PS3USB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a>[(uint8_t)b]));</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;</div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230"> 312</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230">PS3USB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; uint32_t button = pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"></span>FailSetDevTblEntry:</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;FailSetConfDescr:</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#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</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">goto</span> Fail;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;FailUnknownDevice:</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#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</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> rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;Fail:</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">#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\nPS3 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98"> 255</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::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#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3MoveConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <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>().<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="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a> = 0;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00265"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00"> 265</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a>() {</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> 0;</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="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> || <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint16_t BUFFER_SIZE = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#aca3cbaad8732d9185bb9bda1a32cd18d">PS3_INPUT_PIPE</a> ].epAddr, &amp;BUFFER_SIZE, readBuf); <span class="comment">// input on endpoint 1</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; readReport();</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</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="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> }</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</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>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; timer = millis();</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; }</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> 0;</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>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keywordtype">void</span> PS3USB::readReport() {</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span>;</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; ButtonState = (uint32_t)(readBuf[2] | ((uint16_t)readBuf[3] &lt;&lt; 8) | ((uint32_t)readBuf[4] &lt;&lt; 16));</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="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;, 0x80);</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; OldButtonState = ButtonState;</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="l00302"></a><span class="lineno"> 302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</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="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span>;</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; 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="l00314"></a><span class="lineno"> 314</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141"> 315</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141">PS3USB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</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#af3392eea150ac9151bef45148f0d7895">BUTTONS</a>[(uint8_t)b]));</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;}</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0"> 319</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0">PS3USB::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> a) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[(pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f">ANALOGBUTTONS</a>[(uint8_t)a])) - 9]);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3"> 325</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3">PS3USB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[((uint8_t)a + 6)]);</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;</div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783"> 331</a></span>&#160;uint16_t <a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">PS3USB::getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> a) {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> ((readBuf[((uint16_t)a) - 9] &lt;&lt; 8) | readBuf[((uint16_t)a + 1) - 9]);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;}</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
<div class="line"><a name="l00337"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777"> 337</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777">PS3USB::getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> a) {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a>) {</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordtype">double</span> accXval;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordtype">double</span> accYval;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordtype">double</span> accZval;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// Data for the Kionix KXPC4 used in the DualShock 3</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> zeroG = 511.5; <span class="comment">// 1.65/3.3*1023 (1,65V)</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; accXval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb">aX</a>) - zeroG);</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; accYval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd">aY</a>) - zeroG);</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; accZval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc">aZ</a>) - zeroG);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">// Convert to 360 degrees resolution</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// atan2 outputs the value of -π to π (radians)</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">// We are then converting it to 0 to 2π and then to degrees</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span> (a == <a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a>) {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">double</span> angle = (atan2(accYval, accZval) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> angle;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">double</span> angle = (atan2(accXval, accZval) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> angle;</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="keywordflow">else</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448"> 363</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">PS3USB::getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> c) {</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span> (readBuf[((uint16_t)c &gt;&gt; 8) - 9] == ((uint8_t)c &amp; 0xff))</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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"><a class="code" href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae"> 371</a></span>&#160;String <a class="code" href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae">PS3USB::getStatusString</a>() {</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> || <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">char</span> statusOutput[100];</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; strcpy(statusOutput, <span class="stringliteral">&quot;ConnectionStatus: &quot;</span>);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387">Plugged</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Plugged&quot;</span>);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924">Unplugged</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Unplugged&quot;</span>);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</span>);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230"> 319</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230">PS3USB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; uint32_t button = pgm_read_dword(&amp;<a class="code" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0"> 326</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0">PS3USB::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> a) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[(pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f">ANALOGBUTTONS</a>[(uint8_t)a])) - 9]);</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;</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3"> 332</a></span>&#160;uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3">PS3USB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> (uint8_t)(readBuf[((uint8_t)a + 6)]);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783"> 338</a></span>&#160;uint16_t <a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">PS3USB::getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> a) {</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> ((readBuf[((uint16_t)a) - 9] &lt;&lt; 8) | readBuf[((uint16_t)a + 1) - 9]);</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777"> 344</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777">PS3USB::getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> a) {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a>) {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordtype">double</span> accXval;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordtype">double</span> accYval;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">double</span> accZval;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// Data for the Kionix KXPC4 used in the DualShock 3</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> zeroG = 511.5; <span class="comment">// 1.65/3.3*1023 (1,65V)</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; accXval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb">aX</a>) - zeroG);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; accYval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd">aY</a>) - zeroG);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; accZval = -((double)<a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc">aZ</a>) - zeroG);</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="comment">// Convert to 360 degrees resolution</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// atan2 outputs the value of -π to π (radians)</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// We are then converting it to 0 to 2π and then to degrees</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span> (a == <a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a>) {</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">double</span> angle = (atan2(accYval, accZval) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> angle;</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">double</span> angle = (atan2(accXval, accZval) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> angle;</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; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> 0;</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"><a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448"> 370</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">PS3USB::getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> c) {</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (readBuf[((uint16_t)c &gt;&gt; 8) - 9] == ((uint8_t)c &amp; 0xff))</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae"> 378</a></span>&#160;String <a class="code" href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae">PS3USB::getStatusString</a>() {</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3Connected</a> || <a class="code" href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3NavigationConnected</a>) {</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">char</span> statusOutput[100];</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; strcat(statusOutput, <span class="stringliteral">&quot; - PowerRating: &quot;</span>);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; strcpy(statusOutput, <span class="stringliteral">&quot;ConnectionStatus: &quot;</span>);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773">Charging</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Charging&quot;</span>);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Not Charging&quot;</span>);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734">Shutdown</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Shutdown&quot;</span>);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089">Dying</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Dying&quot;</span>);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8">Low</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Low&quot;</span>);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f">High</a>)) strcat(statusOutput, <span class="stringliteral">&quot;High&quot;</span>);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Full&quot;</span>);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</span>);</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; strcat(statusOutput, <span class="stringliteral">&quot; - WirelessStatus: &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; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209">CableRumble</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Cable - Rumble is on&quot;</span>);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Cable - Rumble is off&quot;</span>);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c">BluetoothRumble</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Bluetooth - Rumble is on&quot;</span>);</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb">Bluetooth</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Bluetooth - Rumble is off&quot;</span>);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</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">return</span> statusOutput;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Error&quot;</span>;</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;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment">/* Playstation Sixaxis Dualshock and Navigation Controller commands */</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keywordtype">void</span> PS3USB::PS3_Command(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x01), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x01, 0x02, 0x00, nbytes, nbytes, data, NULL);</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;</div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498"> 412</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a>() {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</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="l00414"></a><span class="lineno"> 414</span>&#160; writeBuf[i] = pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74">PS3_REPORT_BUFFER</a>[i]); <span class="comment">// Reset buffer</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387">Plugged</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Plugged&quot;</span>);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924">Unplugged</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Unplugged&quot;</span>);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</span>);</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;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; strcat(statusOutput, <span class="stringliteral">&quot; - PowerRating: &quot;</span>);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773">Charging</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Charging&quot;</span>);</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Not Charging&quot;</span>);</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734">Shutdown</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Shutdown&quot;</span>);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089">Dying</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Dying&quot;</span>);</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8">Low</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Low&quot;</span>);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f">High</a>)) strcat(statusOutput, <span class="stringliteral">&quot;High&quot;</span>);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Full&quot;</span>);</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</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; strcat(statusOutput, <span class="stringliteral">&quot; - WirelessStatus: &quot;</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; <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209">CableRumble</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Cable - Rumble is on&quot;</span>);</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Cable - Rumble is off&quot;</span>);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c">BluetoothRumble</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Bluetooth - Rumble is on&quot;</span>);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb">Bluetooth</a>)) strcat(statusOutput, <span class="stringliteral">&quot;Bluetooth - Rumble is off&quot;</span>);</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span> strcat(statusOutput, <span class="stringliteral">&quot;Error&quot;</span>);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> statusOutput;</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Error&quot;</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;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">/* Playstation Sixaxis Dualshock and Navigation Controller commands */</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keywordtype">void</span> PS3USB::PS3_Command(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x01), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x01, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a"> 419</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a>() {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; writeBuf[2] = 0x00; <span class="comment">//low mode off</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; writeBuf[3] = 0x00;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; writeBuf[4] = 0x00; <span class="comment">//high mode off</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</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;</div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1"> 428</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">PS3USB::setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> mode) {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> ((mode &amp; 0x30) &gt; 0x00) {</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; uint8_t power[2] = { 0xff, 0x00 }; <span class="comment">// Defaults to RumbleLow</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (mode == <a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; power[0] = 0x00;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; power[1] = 0xff;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">setRumbleOn</a>(0xfe, power[0], 0xfe, power[1]);</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#a0c2015b53aa60081aa28299800509f80"> 439</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">PS3USB::setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower) {</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; writeBuf[1] = rightDuration;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; writeBuf[2] = rightPower;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; writeBuf[3] = leftDuration;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; writeBuf[4] = leftPower;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
<div class="line"><a name="l00447"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b"> 447</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; writeBuf[9] = value;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;}</div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#adb361fecbe4eb6fc5635dc7135cfff03"> 451</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#adb361fecbe4eb6fc5635dc7135cfff03">PS3USB::setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; writeBuf[9] &amp;= ~((uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</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"><a class="code" href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b"> 455</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b">PS3USB::setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; writeBuf[9] |= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;}</div>
<div class="line"><a name="l00459"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090"> 459</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090">PS3USB::setLedToggle</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; writeBuf[9] ^= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498"> 419</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a>() {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</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="l00421"></a><span class="lineno"> 421</span>&#160; writeBuf[i] = pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74">PS3_REPORT_BUFFER</a>[i]); <span class="comment">// Reset buffer</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a"> 426</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a>() {</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; writeBuf[2] = 0x00; <span class="comment">//low mode off</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; writeBuf[3] = 0x00;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; writeBuf[4] = 0x00; <span class="comment">//high mode off</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;}</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1"> 435</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">PS3USB::setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> mode) {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> ((mode &amp; 0x30) &gt; 0x00) {</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; uint8_t power[2] = {0xff, 0x00}; <span class="comment">// Defaults to RumbleLow</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span> (mode == <a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a>) {</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; power[0] = 0x00;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; power[1] = 0xff;</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; <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">setRumbleOn</a>(0xfe, power[0], 0xfe, power[1]);</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;}</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
<div class="line"><a name="l00446"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a0c2015b53aa60081aa28299800509f80"> 446</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">PS3USB::setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower) {</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; writeBuf[1] = rightDuration;</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; writeBuf[2] = rightPower;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; writeBuf[3] = leftDuration;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; writeBuf[4] = leftPower;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b"> 454</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; writeBuf[9] = value &lt;&lt; 1;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</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"> 458</span>&#160;</div>
<div class="line"><a name="l00459"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#adb361fecbe4eb6fc5635dc7135cfff03"> 459</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#adb361fecbe4eb6fc5635dc7135cfff03">PS3USB::setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; writeBuf[9] &amp;= ~((uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1));</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</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;</div>
<div class="line"><a name="l00464"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#af13993073ab245ece6d3fe9e9f41df87"> 464</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#af13993073ab245ece6d3fe9e9f41df87">PS3USB::setBdaddr</a>(uint8_t* BDADDR) {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">/* Set the internal bluetooth address */</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint8_t buf[8];</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; buf[0] = 0x01;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; buf[1] = 0x00;</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; buf[i + 2] = BDADDR[5 - i]; <span class="comment">//Copy into buffer, has to be written reversed</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF5), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keywordtype">void</span> PS3USB::enable_sixaxis() { <span class="comment">//Command used to enable the Dualshock 3 and Navigation controller to send data via USB</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint8_t cmd_buf[4];</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; cmd_buf[0] = 0x42; <span class="comment">// Special PS3 Controller enable commands</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; cmd_buf[1] = 0x0c;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; cmd_buf[2] = 0x00;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; cmd_buf[3] = 0x00;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF4), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF4, 0x03, 0x00, 4, 4, cmd_buf, NULL);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment">/* Playstation Move Controller commands */</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="keywordtype">void</span> PS3USB::Move_Command(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7"> 492</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::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="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// set the Bulb&#39;s values into the write buffer</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; writeBuf[2] = r;</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; writeBuf[3] = g;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; writeBuf[4] = b;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</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="l00499"></a><span class="lineno"> 499</span>&#160;}</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div>
<div class="line"><a name="l00501"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a34c83190306752e68c5704eece875d49"> 501</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#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</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="l00502"></a><span class="lineno"> 502</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="l00503"></a><span class="lineno"> 503</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a"> 505</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="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</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="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"></span> <span class="comment">//set the rumble value into the write buffer</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; writeBuf[6] = rumble;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</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="l00514"></a><span class="lineno"> 514</span>&#160;}</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"><a class="code" href="class_p_s3_u_s_b.html#a3be69a3c6e24bf2b53bc06c85829e62a"> 516</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3be69a3c6e24bf2b53bc06c85829e62a">PS3USB::setMoveBdaddr</a>(uint8_t* BDADDR) {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">/* Set the internal bluetooth address */</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; uint8_t buf[11];</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; buf[0] = 0x05;</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; buf[7] = 0x10;</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; buf[8] = 0x01;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; buf[9] = 0x02;</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; buf[10] = 0x12;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; buf[i + 1] = BDADDR[i];</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x05), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x05, 0x03, 0x00, 11, 11, buf, NULL);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;}</div>
<div class="line"><a name="l00464"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b"> 464</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b">PS3USB::setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; writeBuf[9] |= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</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;</div>
<div class="line"><a name="l00469"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090"> 469</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090">PS3USB::setLedToggle</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a) {</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; writeBuf[9] ^= (uint8_t)((pgm_read_byte(&amp;<a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[(uint8_t)a]) &amp; 0x0f) &lt;&lt; 1);</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; PS3_Command(writeBuf, PS3_REPORT_BUFFER_SIZE);</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#af13993073ab245ece6d3fe9e9f41df87"> 474</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#af13993073ab245ece6d3fe9e9f41df87">PS3USB::setBdaddr</a>(uint8_t* BDADDR) {</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">/* Set the internal bluetooth address */</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; uint8_t buf[8];</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; buf[0] = 0x01;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; buf[1] = 0x00;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; buf[i + 2] = BDADDR[5 - i]; <span class="comment">//Copy into buffer, has to be written reversed</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF5), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF5, 0x03, 0x00, 8, 8, buf, NULL);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keywordtype">void</span> PS3USB::enable_sixaxis() { <span class="comment">//Command used to enable the Dualshock 3 and Navigation controller to send data via USB</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; uint8_t cmd_buf[4];</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; cmd_buf[0] = 0x42; <span class="comment">// Special PS3 Controller enable commands</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; cmd_buf[1] = 0x0c;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; cmd_buf[2] = 0x00;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; cmd_buf[3] = 0x00;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0xF4), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0xF4, 0x03, 0x00, 4, 4, cmd_buf, NULL);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;}</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="comment">/* Playstation Move Controller commands */</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="keywordtype">void</span> PS3USB::Move_Command(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[ <a class="code" href="_p_s3_u_s_b_8h.html#a0da271fcb10181b3ce15aefe76c259bb">PS3_OUTPUT_PIPE</a> ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;}</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
<div class="line"><a name="l00502"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7"> 502</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::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="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// set the Bulb&#39;s values into the write buffer</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; writeBuf[2] = r;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; writeBuf[3] = g;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; writeBuf[4] = b;</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; 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="code" href="class_p_s3_u_s_b.html#a34c83190306752e68c5704eece875d49"> 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#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</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="code" 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="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> <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; writeBuf[6] = rumble;</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"> 523</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="l00524"></a><span class="lineno"> 524</span>&#160;}</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
<div class="line"><a name="l00526"></a><span class="lineno"><a class="code" href="class_p_s3_u_s_b.html#a3be69a3c6e24bf2b53bc06c85829e62a"> 526</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3be69a3c6e24bf2b53bc06c85829e62a">PS3USB::setMoveBdaddr</a>(uint8_t* BDADDR) {</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">/* Set the internal bluetooth address */</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; uint8_t buf[11];</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; buf[0] = 0x05;</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; buf[7] = 0x10;</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; buf[8] = 0x01;</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; buf[9] = 0x02;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; buf[10] = 0x12;</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; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 6; i++)</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; buf[i + 1] = BDADDR[i];</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; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x05), Report Type (Feature 0x03), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">bAddress</a>, <a class="code" href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">epInfo</a>[<a class="code" href="_p_s3_u_s_b_8h.html#ae6276fa555fe14995bee0713be663333">PS3_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x05, 0x03, 0x00, 11, 11, buf, NULL);</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;}</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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -100,7 +100,7 @@ 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="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/><area shape="rect" id="node17" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="653,75,723,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="701,144,757,165"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="204,144,265,165"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node18" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/></map>
<area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/><area shape="rect" id="node18" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="580,75,649,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="350,144,407,165"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="643,144,704,165"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -318,7 +318,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,13 +1,13 @@
<map id="PS3USB.h" name="PS3USB.h">
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/>
<area shape="rect" id="node17" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="653,75,723,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="701,144,757,165"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="204,144,265,165"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node18" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/>
<area shape="rect" id="node18" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="580,75,649,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="350,144,407,165"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="643,144,704,165"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/>
</map>

View file

@ -1 +1 @@
6cea3eaa38742a521814c303ac3dc51a
0ac75f726e2de3191352863394f83430

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 60 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -217,7 +217,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -105,162 +105,165 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="stringliteral"># Developed By</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="stringliteral">* &lt;b&gt;Oleg Mazurov, Circuits\@Home&lt;/b&gt; - &lt;mazurov@circuitsathome.com&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="stringliteral"> * Developer of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="stringliteral">* &lt;b&gt;Kristian Lauszus, TKJ Electronics&lt;/b&gt; - &lt;kristianl@tkjelectronics.com&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="stringliteral"> * Developer of the BTD, SPP, PS3, Wii, and Xbox libraries</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="stringliteral"># How to include the library</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="stringliteral">First download the library by clicking on the following link: &lt;https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip&gt;.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="stringliteral">Then uncompress the zip folder and rename the directory to &quot;USB\_Host\_Shield\_20&quot;, as any special characters are not supported by the Arduino IDE.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="stringliteral">Now open up the Arduino IDE and open &quot;File&gt;Preferences&quot;. There you will see the location of your sketchbook. Open that directory and create a directory called &quot;libraries&quot; inside that directory.</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="stringliteral">Now move the &quot;USB\_Host\_Shield\_20&quot; directory to the &quot;libraries&quot; directory.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="stringliteral">* __Oleg Mazurov, Circuits\@Home__ - &lt;mazurov@circuitsathome.com&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="stringliteral">* __Alexei Glushchenko, Circuits\@Home__ - &lt;alex-gl@mail.ru&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="stringliteral"> * Developers of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="stringliteral">* __Kristian Lauszus, TKJ Electronics__ - &lt;kristianl@tkjelectronics.com&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="stringliteral"> * Developer of the BTD, SPP, PS3, Wii, and Xbox libraries</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="stringliteral">* __Andrew Kroll__ - &lt;xxxajk@gmail.com&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="stringliteral"> * Major contributor to mass storage code</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="stringliteral"># How to include the library</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="stringliteral">First download the library by clicking on the following link: &lt;https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip&gt;.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="stringliteral">Then uncompress the zip folder and rename the directory to &quot;USB\_Host\_Shield\_20&quot;, as any special characters are not supported by the Arduino IDE.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="stringliteral">The final structure should look like this:</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="stringliteral">* Arduino/</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="stringliteral"> * libraries/</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="stringliteral"> * USB\_Host\_Shield\_20/</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="stringliteral">Now quit the Arduino IDE and reopen it.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="stringliteral">Now you should be able to go open all the examples codes by navigating to &quot;File&gt;Examples&gt;USB\_Host\_Shield\_20&quot; and then select the example you will like to open.</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="stringliteral">For more information visit the following site: &lt;http://arduino.cc/en/Guide/Libraries&gt;.</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="stringliteral"># How to use the library</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="stringliteral">### Documentation</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="stringliteral">Documentation for the library can be found at the following link: &lt;http://felis.github.com/USB_Host_Shield_2.0/&gt;.</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="stringliteral">### Arduino ADK</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="stringliteral">To use this library with the official [Arduino ADK](http://arduino.cc/en/Main/ArduinoBoardADK) uncomment the following line in [avrpins.h](https://github.com/felis/USB_Host_Shield_2.0/blob/master/avrpins.h):</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="stringliteral">Now open up the Arduino IDE and open &quot;File&gt;Preferences&quot;. There you will see the location of your sketchbook. Open that directory and create a directory called &quot;libraries&quot; inside that directory.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="stringliteral">Now move the &quot;USB\_Host\_Shield\_20&quot; directory to the &quot;libraries&quot; directory.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="stringliteral">The final structure should look like this:</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="stringliteral">* Arduino/</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="stringliteral"> * libraries/</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="stringliteral"> * USB\_Host\_Shield\_20/</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="stringliteral">Now quit the Arduino IDE and reopen it.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="stringliteral">Now you should be able to go open all the examples codes by navigating to &quot;File&gt;Examples&gt;USB\_Host\_Shield\_20&quot; and then select the example you will like to open.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="stringliteral">For more information visit the following site: &lt;http://arduino.cc/en/Guide/Libraries&gt;.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="stringliteral"># How to use the library</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="stringliteral">### Documentation</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="stringliteral">Documentation for the library can be found at the following link: &lt;http://felis.github.com/USB_Host_Shield_2.0/&gt;.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="stringliteral">&lt;code&gt;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="stringliteral">\#define BOARD\_MEGA_ADK</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="stringliteral">&lt;/code&gt;</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">### [Bluetooth libraries](https://github.com/felis/USB_Host_Shield_2.0/blob/master/BTD.cpp)</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="stringliteral">The [BTD library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</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="l00064"></a><span class="lineno"> 64</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/Bluetooth).</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="stringliteral">The BTD library will also make it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="stringliteral">&lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/PS3SPP/PS3SPP.ino&gt;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="stringliteral">### Arduino ADK</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="stringliteral">To use this library with the official [Arduino ADK](http://arduino.cc/en/Main/ArduinoBoardADK) uncomment the following line in [avrpins.h](https://github.com/felis/USB_Host_Shield_2.0/blob/master/avrpins.h):</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="stringliteral">&lt;code&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="stringliteral">\#define BOARD\_MEGA_ADK</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="stringliteral">&lt;/code&gt;</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">### [Bluetooth libraries](https://github.com/felis/USB_Host_Shield_2.0/blob/master/BTD.cpp)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="stringliteral">The [BTD library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</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="l00067"></a><span class="lineno"> 67</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/Bluetooth).</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">### [SPP library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/SPP.cpp)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</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="l00072"></a><span class="lineno"> 72</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="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">The BTD library will also make it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral">&lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/PS3SPP/PS3SPP.ino&gt;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral">### [SPP library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/SPP.cpp)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</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="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">More information can be found at these blog posts:</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">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="l00080"></a><span class="lineno"> 80</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="l00079"></a><span class="lineno"> 79</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="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="stringliteral">### PS3 Library</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="stringliteral">These libraries consist of the [PS3BT](https://github.com/felis/USB_Host_Shield_2.0/blob/master/PS3BT.cpp) and [PS3USB](https://github.com/felis/USB_Host_Shield_2.0/blob/master/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="l00085"></a><span class="lineno"> 85</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</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: &lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/PS3BT/PS3BT.ino#L12&gt;.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</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="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">Also take a look at the blog posts:</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">* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</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="l00096"></a><span class="lineno"> 96</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="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">A special thanks go to the following people:</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">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="l00101"></a><span class="lineno"> 101</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="l00082"></a><span class="lineno"> 82</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="l00083"></a><span class="lineno"> 83</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="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">### PS3 Library</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">These libraries consist of the [PS3BT](https://github.com/felis/USB_Host_Shield_2.0/blob/master/PS3BT.cpp) and [PS3USB](https://github.com/felis/USB_Host_Shield_2.0/blob/master/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="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">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="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">__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: &lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/PS3BT/PS3BT.ino#L12&gt;.</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</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="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="stringliteral">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</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="l00098"></a><span class="lineno"> 98</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="l00099"></a><span class="lineno"> 99</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="l00100"></a><span class="lineno"> 100</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="stringliteral">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</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="l00104"></a><span class="lineno"> 104</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="stringliteral">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="stringliteral">### Xbox 360 Library</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXRECV.cpp) library.</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">__Note that a Wireless controller can NOT be used via USB!__</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">Examples code can be found in the [examples directory](https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/Xbox).</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="stringliteral">Also see the following blog posts:</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</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="l00123"></a><span class="lineno"> 123</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="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="stringliteral">### [Wii library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/Wii.cpp)</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="stringliteral">The [Wii](https://github.com/felis/USB_Host_Shield_2.0/blob/master/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="l00135"></a><span class="lineno"> 135</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</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="l00137"></a><span class="lineno"> 137</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="stringliteral">&lt;code&gt;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd,PAIR);</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="stringliteral">&lt;/code&gt;</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</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="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="stringliteral">&lt;code&gt;</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="stringliteral">&lt;/code&gt;</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral">Then just press any button any button on the Wiimote and it will connect to the dongle.</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="stringliteral">Take a look at the example for more information: &lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/Wii/Wii.ino&gt;.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</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="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">All the information about the Wii controllers are from these sites:</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://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</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="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</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="l00103"></a><span class="lineno"> 103</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="l00104"></a><span class="lineno"> 104</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="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">Also a big thanks all the people behind these sites about the Motion controller:</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">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</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">### Xbox 360 Library</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">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="l00116"></a><span class="lineno"> 116</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXRECV.cpp) library.</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">__Note that a Wireless controller can NOT be used via USB!__</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">Examples code can be found in the [examples directory](https://github.com/felis/USB_Host_Shield_2.0/tree/master/examples/Xbox).</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">Also see the following blog posts:</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">* &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="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</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="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">All the information regarding the Xbox 360 controller protocol are form these sites:</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">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&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">### [Wii library](https://github.com/felis/USB_Host_Shield_2.0/blob/master/Wii.cpp)</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">The [Wii](https://github.com/felis/USB_Host_Shield_2.0/blob/master/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="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">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="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">&lt;code&gt;</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd,PAIR);</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral">&lt;/code&gt;</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">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="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">After that you can simply create the instance like so:</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;code&gt;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">&lt;/code&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">Then just press any button any button on the Wiimote and it will connect to the dongle.</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">Take a look at the example for more information: &lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/Wii/Wii.ino&gt;.</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">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</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="l00160"></a><span class="lineno"> 160</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</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="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"># FAQ</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">&gt; When I plug my device into the USB connector nothing happens?</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">Try to connect a external power supply to the Arduino - this solves the problem in most cases.</span></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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -86,7 +86,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">SPP.cpp File Reference</div> </div>
@ -98,36 +97,16 @@ 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="551,75,596,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="551,144,596,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="288,283,331,304"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,213,719,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,421,59,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,421,247,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,352,237,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,421,156,443"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="314,352,371,373"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="648,352,709,373"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="650,421,707,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,421,844,443"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,283,780,304"/></map>
<area shape="rect" id="node2" href="_s_p_p_8h.html" title="SPP.h" alt="" coords="560,75,605,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="560,144,605,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="287,283,329,304"/><area shape="rect" id="node20" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,213,732,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,421,84,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,421,328,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,352,225,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,421,168,443"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="377,352,433,373"/><area shape="rect" id="node16" href="message_8h.html" title="message.h" alt="" coords="696,352,757,373"/><area shape="rect" id="node18" href="printhex_8h.html" title="printhex.h" alt="" coords="686,491,743,512"/><area shape="rect" id="node19" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,421,792,443"/><area shape="rect" id="node21" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,283,793,304"/></map>
</div>
</div>
<p><a href="_s_p_p_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><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>
<tr class="memitem:a91baaa87e7a685c42b0ac9f5fca8529d"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8cpp.html#a91baaa87e7a685c42b0ac9f5fca8529d">rfcomm_crc_table</a> [256]</td></tr>
<tr class="separator:a91baaa87e7a685c42b0ac9f5fca8529d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8cpp_source.html#l00019">19</a> of file <a class="el" href="_s_p_p_8cpp_source.html">SPP.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a91baaa87e7a685c42b0ac9f5fca8529d"></a>
<div class="memitem">
@ -166,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,15 +1,15 @@
<map id="SPP.cpp" name="SPP.cpp">
<area shape="rect" id="node2" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="551,75,596,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="551,144,596,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,283,331,304"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,213,719,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,421,59,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,421,247,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,352,237,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,421,156,443"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="314,352,371,373"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="648,352,709,373"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,421,707,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,421,844,443"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,283,780,304"/>
<area shape="rect" id="node2" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="560,75,605,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="560,144,605,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,283,329,304"/>
<area shape="rect" id="node20" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,213,732,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,421,84,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,421,328,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,352,225,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,421,168,443"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="377,352,433,373"/>
<area shape="rect" id="node16" href="$message_8h.html" title="message.h" alt="" coords="696,352,757,373"/>
<area shape="rect" id="node18" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,491,743,512"/>
<area shape="rect" id="node19" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,421,792,443"/>
<area shape="rect" id="node21" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,283,793,304"/>
</map>

View file

@ -1 +1 @@
33aa8c0c9a2d418a2bf5751b5cad51a2
dee9d985871f3cf1594d8314992ecce9

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 79 KiB

File diff suppressed because it is too large Load diff

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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -98,7 +98,7 @@ 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="551,75,596,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="314,283,371,304"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="648,283,709,304"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="377,283,433,304"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="696,283,757,304"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -796,7 +796,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<map id="SPP.h" name="SPP.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="551,75,596,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="314,283,371,304"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="648,283,709,304"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="377,283,433,304"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="696,283,757,304"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/>
</map>

View file

@ -1 +1 @@
b0ceda8ab8c0919f8856bd5609fd1ff0
2a91f81d018fc0d1ae460ca8166764ff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 77 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -271,7 +271,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -99,7 +99,7 @@ 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="avrpins_8h.html" title="avrpins.h" alt="" coords="5,213,59,235"/><area shape="rect" id="node4" href="max3421e_8h.html" title="max3421e.h" alt="" coords="84,213,151,235"/><area shape="rect" id="node5" href="usbhost_8h.html" title="usbhost.h" alt="" coords="117,144,173,165"/><area shape="rect" id="node8" href="_usb_8h.html" title="Usb.h" alt="" coords="275,75,317,96"/><area shape="rect" id="node6" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="175,213,233,235"/><area shape="rect" id="node10" href="address_8h.html" title="address.h" alt="" coords="301,144,357,165"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="508,144,569,165"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="621,213,677,235"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="484,213,545,235"/></map>
<area shape="rect" id="node2" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,213,59,235"/><area shape="rect" id="node4" href="max3421e_8h.html" title="max3421e.h" alt="" coords="236,213,303,235"/><area shape="rect" id="node5" href="usbhost_8h.html" title="usbhost.h" alt="" coords="78,144,135,165"/><area shape="rect" id="node9" href="_usb_8h.html" title="Usb.h" alt="" coords="287,75,329,96"/><area shape="rect" id="node6" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="153,213,212,235"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="313,144,369,165"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="571,144,632,165"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="555,283,612,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="604,213,665,235"/></map>
</div>
</div>
<p><a href="_usb_8cpp_source.html">Go to the source code of this file.</a></p>
@ -108,7 +108,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,11 +1,11 @@
<map id="Usb.cpp" name="Usb.cpp">
<area shape="rect" id="node2" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,213,59,235"/>
<area shape="rect" id="node4" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="84,213,151,235"/>
<area shape="rect" id="node5" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="117,144,173,165"/>
<area shape="rect" id="node8" href="$_usb_8h.html" title="Usb.h" alt="" coords="275,75,317,96"/>
<area shape="rect" id="node6" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="175,213,233,235"/>
<area shape="rect" id="node10" href="$address_8h.html" title="address.h" alt="" coords="301,144,357,165"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="508,144,569,165"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="621,213,677,235"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="484,213,545,235"/>
<area shape="rect" id="node4" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="236,213,303,235"/>
<area shape="rect" id="node5" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="78,144,135,165"/>
<area shape="rect" id="node9" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,75,329,96"/>
<area shape="rect" id="node6" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="153,213,212,235"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="313,144,369,165"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="571,144,632,165"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="555,283,612,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="604,213,665,235"/>
</map>

View file

@ -1 +1 @@
76414eb5b333c825182eee0402948c94
1100db60c4ff669cb9f00b8be1d4b8fb

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 61 KiB

File diff suppressed because it is too large Load diff

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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: Usb.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -107,7 +107,7 @@ Include dependency graph for Usb.h:</div>
<div class="dyncontent">
<div class="center"><img src="_usb_8h__incl.png" border="0" usemap="#_usb_8h" alt=""/></div>
<map name="_usb_8h" id="_usb_8h">
<area shape="rect" id="node4" href="avrpins_8h.html" title="avrpins.h" alt="" coords="320,144,374,165"/><area shape="rect" id="node6" href="max3421e_8h.html" title="max3421e.h" alt="" coords="146,144,213,165"/><area shape="rect" id="node7" href="usbhost_8h.html" title="usbhost.h" alt="" coords="268,75,325,96"/><area shape="rect" id="node8" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="237,144,296,165"/><area shape="rect" id="node9" href="address_8h.html" title="address.h" alt="" coords="82,75,138,96"/><area shape="rect" id="node12" href="message_8h.html" title="message.h" alt="" coords="450,75,512,96"/><area shape="rect" id="node14" href="printhex_8h.html" title="printhex.h" alt="" coords="587,144,644,165"/><area shape="rect" id="node15" href="hexdump_8h.html" title="hexdump.h" alt="" coords="450,144,512,165"/></map>
<area shape="rect" id="node4" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,144,59,165"/><area shape="rect" id="node6" href="max3421e_8h.html" title="max3421e.h" alt="" coords="236,144,303,165"/><area shape="rect" id="node7" href="usbhost_8h.html" title="usbhost.h" alt="" coords="145,75,201,96"/><area shape="rect" id="node8" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="153,144,212,165"/><area shape="rect" id="node10" href="address_8h.html" title="address.h" alt="" coords="329,75,385,96"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="569,75,631,96"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="555,213,612,235"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="604,144,665,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -132,11 +132,9 @@ Classes</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a59c611df6811225e1cca2d1ce5a09cfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a59c611df6811225e1cca2d1ce5a09cfb">USB_METHODS_INLINE</a></td></tr>
<tr class="separator:a59c611df6811225e1cca2d1ce5a09cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6fe7f947af35317a49a4dcfc8189fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(s)&#160;&#160;&#160;(<a class="el" href="message_8h.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(s), 0x80))</td></tr>
<tr class="memitem:afc6fe7f947af35317a49a4dcfc8189fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(s)&#160;&#160;&#160;(<a class="el" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(s), 0x80))</td></tr>
<tr class="separator:afc6fe7f947af35317a49a4dcfc8189fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe3f00986df48a9254f8bf0992041d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(s, r)&#160;&#160;&#160;(<a class="el" href="message_8h.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</td></tr>
<tr class="memitem:adbe3f00986df48a9254f8bf0992041d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(s, r)&#160;&#160;&#160;(<a class="el" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</td></tr>
<tr class="separator:adbe3f00986df48a9254f8bf0992041d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a060f3a6423f1e3640aa7b14d5ce72285"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>&#160;&#160;&#160;<a class="el" href="usb__ch9_8h.html#a35c2a529dc87a274b2eb6f9e33682449">USB_SETUP_DEVICE_TO_HOST</a>|<a class="el" href="usb__ch9_8h.html#a3b51a35acaa76cafbb987c07186a7868">USB_SETUP_TYPE_STANDARD</a>|<a class="el" href="usb__ch9_8h.html#ad48131dc5ca47b4b2def65e7bbc8442f">USB_SETUP_RECIPIENT_DEVICE</a></td></tr>
<tr class="separator:a060f3a6423f1e3640aa7b14d5ce72285"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -204,9 +202,17 @@ Macros</h2></td></tr>
<tr class="separator:a272428aaee5fccec4661bd5457d1928f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad55f0079a95df5e4a9bb22e88a7395f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5">USB_ERROR_EP_NOT_FOUND_IN_TBL</a>&#160;&#160;&#160;0xDB</td></tr>
<tr class="separator:ad55f0079a95df5e4a9bb22e88a7395f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cad2f024e98c4b2b1b52df76b10c01e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a>&#160;&#160;&#160;0xE0</td></tr>
<tr class="separator:a7cad2f024e98c4b2b1b52df76b10c01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a7af8bc5ba78235312e1084a5ee229"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a96a7af8bc5ba78235312e1084a5ee229">USB_ERROR_FailGetDevDescr</a>&#160;&#160;&#160;0xE1</td></tr>
<tr class="separator:a96a7af8bc5ba78235312e1084a5ee229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86f5704804d91e5b0333b418586f4c43"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a86f5704804d91e5b0333b418586f4c43">USB_ERROR_FailSetDevTblEntry</a>&#160;&#160;&#160;0xE2</td></tr>
<tr class="separator:a86f5704804d91e5b0333b418586f4c43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f181b47dbedffe69a32352247834b13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a5f181b47dbedffe69a32352247834b13">USB_ERROR_FailGetConfDescr</a>&#160;&#160;&#160;0xE3</td></tr>
<tr class="separator:a5f181b47dbedffe69a32352247834b13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae691ccb027b8e281ac87522a0e66aaa7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#ae691ccb027b8e281ac87522a0e66aaa7">USB_ERROR_TRANSFER_TIMEOUT</a>&#160;&#160;&#160;0xFF</td></tr>
<tr class="separator:ae691ccb027b8e281ac87522a0e66aaa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8686abbfa0d98547d450fe2a105a588"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a>&#160;&#160;&#160;5000</td></tr>
<tr class="memitem:ad8686abbfa0d98547d450fe2a105a588"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#ad8686abbfa0d98547d450fe2a105a588">USB_XFER_TIMEOUT</a>&#160;&#160;&#160;10000</td></tr>
<tr class="separator:ad8686abbfa0d98547d450fe2a105a588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857a9899ad4f277faf074c3012e14ffa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a857a9899ad4f277faf074c3012e14ffa">USB_RETRY_LIMIT</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a857a9899ad4f277faf074c3012e14ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -234,6 +240,8 @@ Macros</h2></td></tr>
<tr class="separator:a311f11b79c4020d771cd6930e0a3223d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d69537e663e7d5f188004f0d25ec0cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a2d69537e663e7d5f188004f0d25ec0cc">USB_ATTACHED_SUBSTATE_WAIT_SOF</a>&#160;&#160;&#160;0x50</td></tr>
<tr class="separator:a2d69537e663e7d5f188004f0d25ec0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80a8d6b8e75c76947e452b4afa04c84e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a80a8d6b8e75c76947e452b4afa04c84e">USB_ATTACHED_SUBSTATE_WAIT_RESET</a>&#160;&#160;&#160;0x51</td></tr>
<tr class="separator:a80a8d6b8e75c76947e452b4afa04c84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23ebcbb956f600e06435b28ae0c855d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a23ebcbb956f600e06435b28ae0c855d4">USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE</a>&#160;&#160;&#160;0x60</td></tr>
<tr class="separator:a23ebcbb956f600e06435b28ae0c855d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a474a95baaeb99abd17538c2a1364bf96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_usb_8h.html#a474a95baaeb99abd17538c2a1364bf96">USB_STATE_ADDRESSING</a>&#160;&#160;&#160;0x70</td></tr>
@ -253,20 +261,6 @@ Typedefs</h2></td></tr>
<tr class="separator:af36716855ff65599786d9bdf6e4c11f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a59c611df6811225e1cca2d1ce5a09cfb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_METHODS_INLINE</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00023">23</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="afc6fe7f947af35317a49a4dcfc8189fd"></a>
<div class="memitem">
<div class="memproto">
@ -275,13 +269,13 @@ Typedefs</h2></td></tr>
<td class="memname">#define USBTRACE</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">s</td><td>)</td>
<td>&#160;&#160;&#160;(<a class="el" href="message_8h.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(s), 0x80))</td>
<td class="paramname">s)</td><td></td>
<td>&#160;&#160;&#160;(<a class="el" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(s), 0x80))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00061">61</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -304,12 +298,12 @@ Typedefs</h2></td></tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(<a class="el" href="message_8h.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</td>
<td></td><td>&#160;&#160;&#160;(<a class="el" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00062">62</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00063">63</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -323,7 +317,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00067">67</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -337,7 +331,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00068">68</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -351,7 +345,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00069">69</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00070">70</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -365,7 +359,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00076">76</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00077">77</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -379,7 +373,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00077">77</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -393,7 +387,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00078">78</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00079">79</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -407,7 +401,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00079">79</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -421,7 +415,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00080">80</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -435,7 +429,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00081">81</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00082">82</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -449,7 +443,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00082">82</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -463,7 +457,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00083">83</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00084">84</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -477,7 +471,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00084">84</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -491,7 +485,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00085">85</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00086">86</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -505,7 +499,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00086">86</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00087">87</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -519,7 +513,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00087">87</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -533,7 +527,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00088">88</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00089">89</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -547,7 +541,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00089">89</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -561,7 +555,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00090">90</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00091">91</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -575,7 +569,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00091">91</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -589,7 +583,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00092">92</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00093">93</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -603,7 +597,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00093">93</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -617,7 +611,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00094">94</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00095">95</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -631,7 +625,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00097">97</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00098">98</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -645,7 +639,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00098">98</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -659,7 +653,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00099">99</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00100">100</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -673,7 +667,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00100">100</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00101">101</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -687,7 +681,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00101">101</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00102">102</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -701,7 +695,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00102">102</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00103">103</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -715,7 +709,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00103">103</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00104">104</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -729,7 +723,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00104">104</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00105">105</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -743,7 +737,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00105">105</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00106">106</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -757,7 +751,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00106">106</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00107">107</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -771,7 +765,63 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00107">107</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00108">108</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7cad2f024e98c4b2b1b52df76b10c01e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET&#160;&#160;&#160;0xE0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00109">109</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="a96a7af8bc5ba78235312e1084a5ee229"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_ERROR_FailGetDevDescr&#160;&#160;&#160;0xE1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00110">110</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="a86f5704804d91e5b0333b418586f4c43"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_ERROR_FailSetDevTblEntry&#160;&#160;&#160;0xE2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00111">111</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5f181b47dbedffe69a32352247834b13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_ERROR_FailGetConfDescr&#160;&#160;&#160;0xE3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00112">112</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -785,7 +835,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00108">108</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00113">113</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -794,12 +844,12 @@ Typedefs</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_XFER_TIMEOUT&#160;&#160;&#160;5000</td>
<td class="memname">#define USB_XFER_TIMEOUT&#160;&#160;&#160;10000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00118">118</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00115">115</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -813,7 +863,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00120">120</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00117">117</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -827,7 +877,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00121">121</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00118">118</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -841,7 +891,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00123">123</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00120">120</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -855,7 +905,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00125">125</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00122">122</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -869,7 +919,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00128">128</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00125">125</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -883,7 +933,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00130">130</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00127">127</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -897,7 +947,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00131">131</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00128">128</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -911,7 +961,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00132">132</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00129">129</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -925,7 +975,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00133">133</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00130">130</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -939,7 +989,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00134">134</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00131">131</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -953,7 +1003,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00135">135</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00132">132</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -967,7 +1017,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00136">136</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00133">133</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -981,7 +1031,21 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00137">137</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00134">134</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
<a class="anchor" id="a80a8d6b8e75c76947e452b4afa04c84e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_ATTACHED_SUBSTATE_WAIT_RESET&#160;&#160;&#160;0x51</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00135">135</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -995,7 +1059,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00138">138</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00136">136</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1009,7 +1073,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00139">139</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00137">137</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1023,7 +1087,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00140">140</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00138">138</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1037,7 +1101,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00141">141</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00139">139</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1051,7 +1115,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00142">142</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00140">140</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1066,7 +1130,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00057">57</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
<p>Definition at line <a class="el" href="_usb_8h_source.html#l00058">58</a> of file <a class="el" href="_usb_8h_source.html">Usb.h</a>.</p>
</div>
</div>
@ -1087,7 +1151,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,10 +1,10 @@
<map id="Usb.h" name="Usb.h">
<area shape="rect" id="node4" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="320,144,374,165"/>
<area shape="rect" id="node6" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="146,144,213,165"/>
<area shape="rect" id="node7" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="268,75,325,96"/>
<area shape="rect" id="node8" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="237,144,296,165"/>
<area shape="rect" id="node9" href="$address_8h.html" title="address.h" alt="" coords="82,75,138,96"/>
<area shape="rect" id="node12" href="$message_8h.html" title="message.h" alt="" coords="450,75,512,96"/>
<area shape="rect" id="node14" href="$printhex_8h.html" title="printhex.h" alt="" coords="587,144,644,165"/>
<area shape="rect" id="node15" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="450,144,512,165"/>
<area shape="rect" id="node4" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,144,59,165"/>
<area shape="rect" id="node6" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="236,144,303,165"/>
<area shape="rect" id="node7" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="145,75,201,96"/>
<area shape="rect" id="node8" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="153,144,212,165"/>
<area shape="rect" id="node10" href="$address_8h.html" title="address.h" alt="" coords="329,75,385,96"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="569,75,631,96"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="555,213,612,235"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="604,144,665,165"/>
</map>

View file

@ -1 +1 @@
d7e3042d71e752f1afbf6b063abdad3f
bbd5bd64f5e628b380c990e35c15c364

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 47 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,272 +111,279 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#define BOARD_BLACK_WIDDOW</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"><a class="code" href="_usb_8h.html#a59c611df6811225e1cca2d1ce5a09cfb"> 23</a></span>&#160;<span class="preprocessor">#define USB_METHODS_INLINE</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;inttypes.h&gt;</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="preprocessor">#include &lt;assert.h&gt;</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="preprocessor">#include &quot;<a class="code" href="avrpins_8h.html">avrpins.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="max3421e_8h.html">max3421e.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="usbhost_8h.html">usbhost.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="usb__ch9_8h.html">usb_ch9.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="address_8h.html">address.h</a>&quot;</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="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;Arduino.h&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;WProgram.h&gt;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;<a class="code" href="message_8h.html">message.h</a>&quot;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/* shield pins. First parameter - SS pin, second parameter - INT pin */</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="preprocessor">#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOARD_TEENSY_PLUS_PLUS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</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="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#ifdef BOARD_BLACK_WIDDOW</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Black Widow</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#elif defined(BOARD_TEENSY_PLUS_PLUS)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Teensy++ 2.0 &amp; 1.0</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#elif defined(BOARD_MEGA_ADK)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Arduino Mega ADK</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#elif defined(BOARD_BALANDUINO)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Balanduino</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 57</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo etc.)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</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">//Debug macros. In 1.0 it is possible to move strings to PROGMEM by defining USBTRACE (Serial.print(F(s)))</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd"> 61</a></span>&#160;<span class="preprocessor">#define USBTRACE(s) (Notify(PSTR(s), 0x80))</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="_usb_8h.html#adbe3f00986df48a9254f8bf0992041d3"> 62</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USBTRACE2(s,r) (Notify(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Not used anymore?</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//#define USB_METHODS_INLINE</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="preprocessor">#include &lt;inttypes.h&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;assert.h&gt;</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="preprocessor">#include &quot;<a class="code" href="avrpins_8h.html">avrpins.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="max3421e_8h.html">max3421e.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="usbhost_8h.html">usbhost.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="usb__ch9_8h.html">usb_ch9.h</a>&quot;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="address_8h.html">address.h</a>&quot;</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"> 36</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;Arduino.h&quot;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;WProgram.h&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;<a class="code" href="message_8h.html">message.h</a>&quot;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/* shield pins. First parameter - SS pin, second parameter - INT pin */</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"> 45</span>&#160;<span class="preprocessor">#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOARD_TEENSY_PLUS_PLUS</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#ifdef BOARD_BLACK_WIDDOW</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Black Widow</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#elif defined(BOARD_TEENSY_PLUS_PLUS)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Teensy++ 2.0 &amp; 1.0</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#elif defined(BOARD_MEGA_ADK)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Arduino Mega ADK</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#elif defined(BOARD_BALANDUINO)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Balanduino</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb"> 58</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_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a>; <span class="comment">// Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo etc.)</span></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></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">//Debug macros. In 1.0 it is possible to move strings to PROGMEM by defining USBTRACE (USB_HOST_SERIAL.print(F(s)))</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd"> 62</a></span>&#160;<span class="preprocessor">#define USBTRACE(s) (Notify(PSTR(s), 0x80))</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="_usb_8h.html#adbe3f00986df48a9254f8bf0992041d3"> 63</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USBTRACE2(s,r) (Notify(PSTR(s), 0x80), PrintHex((r), 0x80), Notify(PSTR(&quot;\r\n&quot;), 0x80))</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="_usb_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 67</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="l00068"></a><span class="lineno"><a class="code" href="_usb_8h.html#af4965e768593007eacde7644979f56da"> 68</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="l00069"></a><span class="lineno"><a class="code" href="_usb_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 69</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="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</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="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae157c9a62665e9ca41bf765518077f40"> 76</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="l00077"></a><span class="lineno"><a class="code" href="_usb_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 77</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="_usb_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 78</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="l00079"></a><span class="lineno"><a class="code" href="_usb_8h.html#af062e949014bed74a8b5fedcf1705602"> 79</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="_usb_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_usb_8h.html#ab3e03403111b64480ba298d2641cf92f"> 82</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 83</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="l00084"></a><span class="lineno"><a class="code" href="_usb_8h.html#aac5a936a2d1a6e3403798b031294992a"> 84</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 85</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="l00086"></a><span class="lineno"><a class="code" href="_usb_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 86</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="l00087"></a><span class="lineno"><a class="code" href="_usb_8h.html#a311fda5cdf4960e05a892084c1b11288"> 87</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="l00088"></a><span class="lineno"><a class="code" href="_usb_8h.html#a42a579e1be399e32a495b82634411449"> 88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="_usb_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 89</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="l00090"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 90</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="l00091"></a><span class="lineno"><a class="code" href="_usb_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 91</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="l00092"></a><span class="lineno"><a class="code" href="_usb_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="_usb_8h.html#a47087a6e244a02251b650921ea3b71db"> 93</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="l00094"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 94</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="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 97</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 98</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="l00099"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 99</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="l00100"></a><span class="lineno"><a class="code" href="_usb_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 100</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="l00101"></a><span class="lineno"><a class="code" href="_usb_8h.html#ada55913b93ef46c430ed6979022c31b1"> 101</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="_usb_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 102</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="l00103"></a><span class="lineno"><a class="code" href="_usb_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 103</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="_usb_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="_usb_8h.html#a44416ff64fc0e3691f98addac13d4595"> 105</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="l00106"></a><span class="lineno"><a class="code" href="_usb_8h.html#a272428aaee5fccec4661bd5457d1928f"> 106</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="l00107"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 107</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="l00108"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 108</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="class_u_s_b_device_config.html"> 110</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="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a391dc824a3271671890cebeb829b35ed">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) = 0;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a74c06c5fe641b20faeeebd39e33248b3">Release</a>() = 0;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a4961e92df3e75c38e6953fb08b11f8b6">Poll</a>() = 0;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aae3130517514c902bad5f153849b3811">GetAddress</a>() = 0;</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;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 118</a></span>&#160;<span class="preprocessor">#define USB_XFER_TIMEOUT 5000 //USB transfer timeout in milliseconds, per section 9.2.6.1 of USB 2.0 spec</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</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="l00120"></a><span class="lineno"><a class="code" href="_usb_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 120</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 //retry limit for a transfer</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="_usb_8h.html#a1b082667723b29243b021a1829bdd8d6"> 121</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="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 123</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 125</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="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">/* Common setup data constant combinations */</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_usb_8h.html#a060f3a6423f1e3640aa7b14d5ce72285"> 68</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="l00069"></a><span class="lineno"><a class="code" href="_usb_8h.html#af4965e768593007eacde7644979f56da"> 69</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="l00070"></a><span class="lineno"><a class="code" href="_usb_8h.html#a9495c8ffdb784e111e8174e1541676f0"> 70</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="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// D7 data transfer direction (0 - host-to-device, 1 - device-to-host)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// D6-5 Type (0- standard, 1 - class, 2 - vendor, 3 - reserved)</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// USB Device Classes</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae157c9a62665e9ca41bf765518077f40"> 77</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="l00078"></a><span class="lineno"><a class="code" href="_usb_8h.html#a8785f84db1be6b0b5da34cd91a1b6138"> 78</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_AUDIO 0x01 // Audio</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="_usb_8h.html#abb99f6b1f38ff79ec678cd957ac86758"> 79</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="l00080"></a><span class="lineno"><a class="code" href="_usb_8h.html#af062e949014bed74a8b5fedcf1705602"> 80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HID 0x03 // HID</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa5f3153d014b6267ba8da243b6b46443"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PHYSICAL 0x05 // Physical</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_usb_8h.html#a1cddf36a39f1299fcf654628c40eaafe"> 82</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_IMAGE 0x06 // Image</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="_usb_8h.html#ab3e03403111b64480ba298d2641cf92f"> 83</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_PRINTER 0x07 // Printer</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa99b73e335df09e6545fc44798a3c1f2"> 84</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="l00085"></a><span class="lineno"><a class="code" href="_usb_8h.html#aac5a936a2d1a6e3403798b031294992a"> 85</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_HUB 0x09 // Hub</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae"> 86</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="l00087"></a><span class="lineno"><a class="code" href="_usb_8h.html#a823e1d95a677968ba93d6bb1968c48db"> 87</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="l00088"></a><span class="lineno"><a class="code" href="_usb_8h.html#a311fda5cdf4960e05a892084c1b11288"> 88</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="l00089"></a><span class="lineno"><a class="code" href="_usb_8h.html#a42a579e1be399e32a495b82634411449"> 89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_VIDEO 0x0e // Video</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="_usb_8h.html#aef502b63c6eb8229ba4d67224f19fb84"> 90</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="l00091"></a><span class="lineno"><a class="code" href="_usb_8h.html#aa31549c5c0d9e18f310dddaeab27068b"> 91</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="l00092"></a><span class="lineno"><a class="code" href="_usb_8h.html#afce880b09049d7105f8e68ff36d9ad17"> 92</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="l00093"></a><span class="lineno"><a class="code" href="_usb_8h.html#a02fb07e20ad6d1af64439f40093bc80f"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_CLASS_MISC 0xef // Miscellaneous</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="_usb_8h.html#a47087a6e244a02251b650921ea3b71db"> 94</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="l00095"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7c6212a5385ca1b4af75eeff62f7a871"> 95</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="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// Additional Error Codes</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589"> 98</a></span>&#160;<span class="preprocessor">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED 0xD1</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7cb7070e699b7815e3c45dc8f7dd67f1"> 99</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="l00100"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad4929f74079f3bc22b00936ae84d18b0"> 100</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="l00101"></a><span class="lineno"><a class="code" href="_usb_8h.html#a15370eb665cdded5514e69ca58d9f39d"> 101</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="l00102"></a><span class="lineno"><a class="code" href="_usb_8h.html#ada55913b93ef46c430ed6979022c31b1"> 102</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_HUB_ADDRESS_OVERFLOW 0xD5</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="_usb_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0"> 103</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="l00104"></a><span class="lineno"><a class="code" href="_usb_8h.html#af192c59cafe2192ad802b22e6dbc077d"> 104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_EPINFO_IS_NULL 0xD7</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="_usb_8h.html#a52c379fe7e22f53d3e3d47d65735fa3b"> 105</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_INVALID_ARGUMENT 0xD8</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="_usb_8h.html#a44416ff64fc0e3691f98addac13d4595"> 106</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="l00107"></a><span class="lineno"><a class="code" href="_usb_8h.html#a272428aaee5fccec4661bd5457d1928f"> 107</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="l00108"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad55f0079a95df5e4a9bb22e88a7395f5"> 108</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="l00109"></a><span class="lineno"><a class="code" href="_usb_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e"> 109</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="l00110"></a><span class="lineno"><a class="code" href="_usb_8h.html#a96a7af8bc5ba78235312e1084a5ee229"> 110</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailGetDevDescr 0xE1</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="_usb_8h.html#a86f5704804d91e5b0333b418586f4c43"> 111</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailSetDevTblEntry 0xE2</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="_usb_8h.html#a5f181b47dbedffe69a32352247834b13"> 112</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_FailGetConfDescr 0xE3</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae691ccb027b8e281ac87522a0e66aaa7"> 113</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ERROR_TRANSFER_TIMEOUT 0xFF</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="_usb_8h.html#ad8686abbfa0d98547d450fe2a105a588"> 115</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="l00116"></a><span class="lineno"> 116</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="l00117"></a><span class="lineno"><a class="code" href="_usb_8h.html#a857a9899ad4f277faf074c3012e14ffa"> 117</a></span>&#160;<span class="preprocessor">#define USB_RETRY_LIMIT 3 // 3 retry limit for a transfer</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="_usb_8h.html#a1b082667723b29243b021a1829bdd8d6"> 118</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="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5"> 120</a></span>&#160;<span class="preprocessor">#define USB_NUMDEVICES 16 //number of USB devices</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</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="l00122"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae843af5aa0de74b17c3d8c8f8fab4c00"> 122</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="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="_usb_8h.html#a3168cf67661a2716677b9830f30b880c"> 125</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">/* USB state machine states */</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="_usb_8h.html#a3168cf67661a2716677b9830f30b880c"> 128</a></span>&#160;<span class="preprocessor">#define USB_STATE_MASK 0xf0</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 130</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="_usb_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="_usb_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 132</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="l00133"></a><span class="lineno"><a class="code" href="_usb_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 133</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="_usb_8h.html#aaadb20392558e23e3eba073e358a4493"> 134</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="_usb_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 135</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="_usb_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 136</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="l00137"></a><span class="lineno"><a class="code" href="_usb_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 137</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="_usb_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 138</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="l00139"></a><span class="lineno"><a class="code" href="_usb_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 139</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="_usb_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 140</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="_usb_8h.html#a138c40c59f628eefbe273a8db0a96753"> 141</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="_usb_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 142</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html"> 145</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </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">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 148</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="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 151</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 152</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 153</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 156</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="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">union </span>{</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 159</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="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="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 162</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="l00163"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 163</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="l00164"></a><span class="lineno"> 164</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 166</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="l00167"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 167</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="l00168"></a><span class="lineno"> 168</span>&#160;} <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> __attribute__((packed));</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</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;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// Base class for incomming data parser</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="class_u_s_b_read_parser.html"> 174</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_read_parser.html#afdb9cea2a2fe18d26f4ec595b86a7f7c">Parse</a>(<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="l00177"></a><span class="lineno"> 177</span>&#160;};</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="_usb_8h.html#ae7fd7c5bb6dc87f44724dde2ad57df87"> 127</a></span>&#160;<span class="preprocessor">#define USB_STATE_DETACHED 0x10</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="_usb_8h.html#a60a744d0f1386e4b28053a41bd6a958f"> 128</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_INITIALIZE 0x11</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="_usb_8h.html#a3708f4e8166d5d099e1982aa956eacce"> 129</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="l00130"></a><span class="lineno"><a class="code" href="_usb_8h.html#aff6ab2376cd29385b20c2b63d4ddd26d"> 130</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_DETACHED_SUBSTATE_ILLEGAL 0x13</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="_usb_8h.html#aaadb20392558e23e3eba073e358a4493"> 131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_SETTLE 0x20</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="_usb_8h.html#ada22633d6de30155a60cb19f6e6452fe"> 132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_RESET_DEVICE 0x30</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="_usb_8h.html#a311f11b79c4020d771cd6930e0a3223d"> 133</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="l00134"></a><span class="lineno"><a class="code" href="_usb_8h.html#a2d69537e663e7d5f188004f0d25ec0cc"> 134</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_SOF 0x50</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="_usb_8h.html#a80a8d6b8e75c76947e452b4afa04c84e"> 135</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_ATTACHED_SUBSTATE_WAIT_RESET 0x51</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="_usb_8h.html#a23ebcbb956f600e06435b28ae0c855d4"> 136</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="l00137"></a><span class="lineno"><a class="code" href="_usb_8h.html#a474a95baaeb99abd17538c2a1364bf96"> 137</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ADDRESSING 0x70</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="_usb_8h.html#aac8c844e6a20f42298d70e4438a029e5"> 138</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_CONFIGURING 0x80</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="_usb_8h.html#a138c40c59f628eefbe273a8db0a96753"> 139</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_RUNNING 0x90</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="_usb_8h.html#a6fef5305841ac36f67d8ddb0bd9127d4"> 140</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define USB_STATE_ERROR 0xa0</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="class_u_s_b_device_config.html"> 142</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="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a391dc824a3271671890cebeb829b35ed">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) = 0;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 145</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) {<span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a74c06c5fe641b20faeeebd39e33248b3">Release</a>() = 0;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a4961e92df3e75c38e6953fb08b11f8b6">Poll</a>() = 0;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aae3130517514c902bad5f153849b3811">GetAddress</a>() = 0;</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"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html"> 152</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</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; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 155</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="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 158</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 159</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 160</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></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; } ReqType_u;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 163</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="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 166</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="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 169</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="l00170"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 170</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="l00171"></a><span class="lineno"> 171</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 173</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="l00174"></a><span class="lineno"><a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 174</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="l00175"></a><span class="lineno"> 175</span>&#160;} <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> __attribute__((packed));</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="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="class_u_s_b.html"> 179</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="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; uint8_t devConfigIndex;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t bmHubPre;</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="keyword">public</span>:</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</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="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 188</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="l00189"></a><span class="lineno"> 189</span>&#160; bmHubPre |= <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="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Base class for incoming data parser</span></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"><a class="code" href="class_u_s_b_read_parser.html"> 181</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_read_parser.html#afdb9cea2a2fe18d26f4ec595b86a7f7c">Parse</a>(<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="l00184"></a><span class="lineno"> 184</span>&#160;};</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"><a class="code" href="class_u_s_b.html"> 186</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="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint8_t devConfigIndex;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t bmHubPre;</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="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 192</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="l00193"></a><span class="lineno"> 193</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</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="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 196</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="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</span>&#160; };</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 200</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="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> 0;</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; <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</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;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 210</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="l00211"></a><span class="lineno"> 211</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</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; 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="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">//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 nbytes, uint8_t* dataptr);</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="comment">/* Control requests */</span></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#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</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#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="l00226"></a><span class="lineno"> 226</span>&#160;</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#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="l00228"></a><span class="lineno"> 228</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="l00229"></a><span class="lineno"> 229</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="l00230"></a><span class="lineno"> 230</span>&#160; </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#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="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</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="l00234"></a><span class="lineno"> 234</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="l00235"></a><span class="lineno"> 235</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="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</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="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#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</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#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</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#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</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; 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="l00244"></a><span class="lineno"> 244</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="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 195</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="l00196"></a><span class="lineno"> 196</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</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;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 199</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="l00200"></a><span class="lineno"> 200</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</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"><a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 203</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="l00204"></a><span class="lineno"> 204</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="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="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> 0;</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="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</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"><a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</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; 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="l00221"></a><span class="lineno"> 221</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="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">//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 nbytes, uint8_t* dataptr);</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="comment">/* Control requests */</span></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#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</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; 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="l00233"></a><span class="lineno"> 233</span>&#160;</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#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="l00235"></a><span class="lineno"> 235</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="l00236"></a><span class="lineno"> 236</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="l00237"></a><span class="lineno"> 237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</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="l00239"></a><span class="lineno"> 239</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="l00240"></a><span class="lineno"> 240</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="l00241"></a><span class="lineno"> 241</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="l00242"></a><span class="lineno"> 242</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="l00243"></a><span class="lineno"> 243</span>&#160;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</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="l00245"></a><span class="lineno"> 245</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</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="l00249"></a><span class="lineno"> 249</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="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</span>&#160;};</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</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="l00247"></a><span class="lineno"> 247</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="l00248"></a><span class="lineno"> 248</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="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</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="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">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"></span><span class="comment">//get device 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#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, 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_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="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 configuration 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#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="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_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="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">//get string descriptor</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#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="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>(addr, ep, <a class="code" href="_usb_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="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 address</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#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</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>(oldaddr, ep, <a class="code" href="_usb_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="l00273"></a><span class="lineno"> 273</span>&#160;}</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</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="l00277"></a><span class="lineno"> 277</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_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="l00278"></a><span class="lineno"> 278</span>&#160;}</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="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor">#endif //_usb_h_</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</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="l00256"></a><span class="lineno"> 256</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="l00257"></a><span class="lineno"> 257</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="l00258"></a><span class="lineno"> 258</span>&#160;};</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"></span><span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</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_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="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">//get configuration descriptor</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="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="l00269"></a><span class="lineno"> 269</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_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="l00270"></a><span class="lineno"> 270</span>&#160;}</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">//get string descriptor</span></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="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="l00274"></a><span class="lineno"> 274</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_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="l00275"></a><span class="lineno"> 275</span>&#160;}</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">//set address</span></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="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="l00279"></a><span class="lineno"> 279</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_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="l00280"></a><span class="lineno"> 280</span>&#160;}</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">//set configuration</span></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="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="l00284"></a><span class="lineno"> 284</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_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="l00285"></a><span class="lineno"> 285</span>&#160;}</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;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#endif //_usb_h_</span></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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -86,7 +86,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">Wii.cpp File Reference</div> </div>
@ -98,16 +97,11 @@ 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="599,75,639,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="551,144,596,165"/><area shape="rect" id="node21" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="621,144,707,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="288,283,331,304"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,213,719,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,421,59,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,421,247,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,352,237,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,421,156,443"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="314,352,371,373"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="648,352,709,373"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="650,421,707,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,421,844,443"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,283,780,304"/></map>
<area shape="rect" id="node2" href="_wii_8h.html" title="Wii.h" alt="" coords="608,75,648,96"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="560,144,605,165"/><area shape="rect" id="node22" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="630,144,716,165"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="287,283,329,304"/><area shape="rect" id="node20" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,213,732,235"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,421,84,443"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,421,328,443"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,352,225,373"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,421,168,443"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="377,352,433,373"/><area shape="rect" id="node16" href="message_8h.html" title="message.h" alt="" coords="696,352,757,373"/><area shape="rect" id="node18" href="printhex_8h.html" title="printhex.h" alt="" coords="686,491,743,512"/><area shape="rect" id="node19" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,421,792,443"/><area shape="rect" id="node21" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,283,793,304"/></map>
</div>
</div>
<p><a href="_wii_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><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>
<tr class="memitem:af83672eccf0c7a02847ce75bc5c55a1a"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a> []</td></tr>
@ -117,21 +111,6 @@ Variables</h2></td></tr>
<tr class="memitem:a6571a59427c954eefde75bb40f02443e"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#a6571a59427c954eefde75bb40f02443e">PROCONTROLLERBUTTONS</a> []</td></tr>
<tr class="separator:a6571a59427c954eefde75bb40f02443e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00023">23</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="af83672eccf0c7a02847ce75bc5c55a1a"></a>
<div class="memitem">
@ -237,7 +216,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,16 +1,16 @@
<map id="Wii.cpp" name="Wii.cpp">
<area shape="rect" id="node2" href="$_wii_8h.html" title="Wii.h" alt="" coords="599,75,639,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="551,144,596,165"/>
<area shape="rect" id="node21" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="621,144,707,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,283,331,304"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,213,719,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,421,59,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,421,247,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,352,237,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,421,156,443"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="314,352,371,373"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="648,352,709,373"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,421,707,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,421,844,443"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,283,780,304"/>
<area shape="rect" id="node2" href="$_wii_8h.html" title="Wii.h" alt="" coords="608,75,648,96"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="560,144,605,165"/>
<area shape="rect" id="node22" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="630,144,716,165"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,283,329,304"/>
<area shape="rect" id="node20" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,213,732,235"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,421,84,443"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,421,328,443"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,352,225,373"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,421,168,443"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="377,352,433,373"/>
<area shape="rect" id="node16" href="$message_8h.html" title="message.h" alt="" coords="696,352,757,373"/>
<area shape="rect" id="node18" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,491,743,512"/>
<area shape="rect" id="node19" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,421,792,443"/>
<area shape="rect" id="node21" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,283,793,304"/>
</map>

View file

@ -1 +1 @@
92196a68a2e7066e730ae6e063a43a10
1b6e9f6e4815a9341cfa67dd5f9e34dc

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 81 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,8 +111,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wii_8h.html">Wii.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="_wii_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83"> 23</a></span>&#160;<span class="preprocessor">#define DEBUG // Uncomment to print data for debugging</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"></span><span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// To enable serial debugging uncomment &quot;#define DEBUG_USB_HOST&quot; in message.h</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the Wii controllers</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"><a class="code" href="_wii_8cpp.html#af83672eccf0c7a02847ce75bc5c55a1a"> 27</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[] PROGMEM = {</div>
@ -209,8 +209,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="code" href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370"> 119</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">WII::disconnect</a>() { <span class="comment">// Use this void to disconnect any of the controllers</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> &amp;&amp; !pBtd-&gt;<a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>) { <span class="comment">// Disable the Motion Plus extension</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDeactivating Motion Plus&quot;</span>), 0x80);</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="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="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
@ -235,18 +235,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[0] | (l2capinbuf[1] &lt;&lt; 8)) == (hci_handle | 0x2000)) { <span class="comment">// acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001) { <span class="comment">//l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</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="l00149"></a><span class="lineno"> 149</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</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="l00151"></a><span class="lineno"> 151</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</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="l00155"></a><span class="lineno"> 155</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</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="l00157"></a><span class="lineno"> 157</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 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> } <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>
@ -267,15 +267,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; } <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="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</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="l00180"></a><span class="lineno"> 180</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; SCID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &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; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; Identifier: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</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="l00188"></a><span class="lineno"> 188</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</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>
@ -311,15 +311,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="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="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</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="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">Reset</a>();</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</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="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</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="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</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>
@ -339,7 +339,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 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;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</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="preprocessor">#endif</span></div>
@ -364,9 +364,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!unknownExtensionConnected)</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; ButtonState = (uint32_t)((l2capinbuf[10] &amp; 0x1F) | ((uint16_t)(l2capinbuf[11] &amp; 0x9F) &lt;&lt; 8));</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;ButtonState: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</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="l00277"></a><span class="lineno"> 277</span>&#160; PrintHex&lt;uint32_t &gt; (ButtonState, 0x80);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&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\n&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">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
@ -385,14 +385,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00294"></a><span class="lineno"> 294</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="l00295"></a><span class="lineno"> 295</span>&#160; batteryLevel = l2capinbuf[15]; <span class="comment">// Update battery level</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (l2capinbuf[12] &amp; 0x01) {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWARNING: Battery is nearly empty&quot;</span>), 0x80);</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\nWARNING: Battery is nearly empty&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> }</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</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="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (!unknownExtensionConnected)</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension connected&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\nExtension connected&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> unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
@ -400,20 +400,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</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="l00311"></a><span class="lineno"> 311</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</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="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> <span class="keywordflow">if</span> (<a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; - from Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"></span> l2cap_event_flag &amp;= ~<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</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="l00321"></a><span class="lineno"> 321</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="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">//else if(classicControllerConnected)</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</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="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; - Nunchuck&quot;</span>), 0x80);</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; - Nunchuck&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> <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="l00328"></a><span class="lineno"> 328</span>&#160; l2cap_event_flag &amp;= ~<a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>;</div>
@ -428,64 +428,64 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[12] &amp; 0x0F) == 0) { <span class="comment">// No error</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// See: http://wiibrew.org/wiki/Wiimote/Extension_Controllers</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"></span> l2cap_event_flag |= <a class="code" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"></span> l2cap_event_flag |= <a class="code" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMotion Plus activated in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</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="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</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="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"></span> activateNunchuck = <span class="keyword">false</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; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nInactive Wii Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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="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\nInactive Wii Motion Plus&quot;</span>), 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;\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="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> stateCounter = 300; <span class="comment">// Skip the rest in &quot;L2CAP_CHECK_MOTION_PLUS_STATE&quot;</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</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="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWii U Pro Controller connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</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="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Device: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</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="l00376"></a><span class="lineno"> 376</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nData: &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\nData: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; ((l2capinbuf[12] &gt;&gt; 4) + 1); i++) { <span class="comment">// bit 4-7 is the length-1</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[15 + i], 0x80);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160; }</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</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> }</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</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; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReport Error: &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\nReport Error: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</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="preprocessor">#endif</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">case</span> 0x22: <span class="comment">// Acknowledge output report, return function result</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nCommand failed: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</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">#endif</span></div>
@ -587,8 +587,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</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="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThe gyro values has been reset&quot;</span>), 0x80);</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</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="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</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="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">gyroRollZero</a> = (l2capinbuf[16] | ((l2capinbuf[19] &amp; 0xFC) &lt;&lt; 6));</div>
@ -622,16 +622,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span> (!extensionConnected) {</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; extensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; unknownExtensionConnected = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension connected to Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</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="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (extensionConnected &amp;&amp; !unknownExtensionConnected) {</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; extensionConnected = <span class="keyword">false</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</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nExtension disconnected from Motion Plus&quot;</span>), 0x80);</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 disconnected from 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> <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="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
@ -655,9 +655,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; hatValues[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (l2capinbuf[21] | l2capinbuf[22] &lt;&lt; 8);</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Report type: &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\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor">#endif</span></div>
@ -674,8 +674,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">/* These states are used if the Wiimote is the host */</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>) {</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</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="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"></span> l2cap_state = <a class="code" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div>
@ -683,8 +683,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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">case</span> <a class="code" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>) {</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</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="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</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="l00599"></a><span class="lineno"> 599</span>&#160; delay(1);</div>
@ -700,8 +700,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">/* These states are used if the Arduino is the host */</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_wii_8h.html#acaec1ddc53593c80dc625c1f361e3a24">l2cap_connected_control_flag</a>) {</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</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="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
@ -711,8 +711,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>) {</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</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="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</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>
@ -722,8 +722,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_wii_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc">l2cap_connected_interrupt_flag</a>) {</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</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\nSend HID Interrupt Config Request&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> identifier++;</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
@ -733,8 +733,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a>) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</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="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</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="l00649"></a><span class="lineno"> 649</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">false</span>;</div>
@ -748,8 +748,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>) {</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</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>
@ -759,8 +759,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>) {</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</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; hci_handle = -1; <span class="comment">// Reset handle</span></div>
@ -777,8 +777,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span> (pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a> &amp;&amp; !pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">wiimoteConnected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</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="l00688"></a><span class="lineno"> 688</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</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="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_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="l00693"></a><span class="lineno"> 693</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
@ -786,8 +786,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00695"></a><span class="lineno"> 695</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="l00696"></a><span class="lineno"> 696</span>&#160; l2cap_state = <a class="code" href="_wii_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="_p_s3_b_t_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>) {</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</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> <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="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</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="l00702"></a><span class="lineno"> 702</span>&#160; delay(1);</div>
@ -800,9 +800,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#a44edf5415459cba3cc378992fef7560b">L2CAP_CHECK_MOTION_PLUS_STATE</a>:</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</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="l00714"></a><span class="lineno"> 714</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking if a Motion Plus is connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</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="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"></span> stateCounter++;</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span> (stateCounter % 200 == 0)</div>
@ -813,15 +813,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; timer = micros();</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">if</span> (unknownExtensionConnected) {</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nA extension is also connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</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="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</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="l00729"></a><span class="lineno"> 729</span>&#160; }</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="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="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNo Motion Plus was detected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</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="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="preprocessor"></span> stateCounter = 0;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; l2cap_state = <a class="code" href="_wii_8h.html#ab84d043703110a74ba9b8d7afa30c5de">L2CAP_CHECK_EXTENSION_STATE</a>;</div>
@ -829,9 +829,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">break</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"> 740</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_wii_8h.html#ab84d043703110a74ba9b8d7afa30c5de">L2CAP_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="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></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> (stateCounter == 0) <span class="comment">// Only print onnce</span></div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking if there is any extension connected&quot;</span>), 0x80);</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\nChecking if there is any extension connected&quot;</span>), 0x80);</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> 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="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">if</span> (stateCounter == 1)</div>
@ -876,9 +876,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_p_s3_b_t_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">if</span> (unknownExtensionConnected) {</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</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="l00790"></a><span class="lineno"> 790</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChecking extension port&quot;</span>), 0x80);</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</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="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</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="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span> (stateCounter == 50)</div>
@ -894,8 +894,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; readExtensionType();</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stateCounter == 250) {</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_wii_8h.html#a7ae9154397104e4df34302ed0884bbfb">nunchuck_connected_flag</a>) {</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNunchuck was reconnected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</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="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"></span> activateNunchuck = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a> = <span class="keyword">true</span>;</div>
@ -904,8 +904,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; stateCounter = 449;</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stateCounter == 300) {</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</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="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nReactivating the Motion Plus&quot;</span>), 0x80);</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</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="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="preprocessor"></span> initMotionPlus();</div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; } <span class="keywordflow">else</span></div>
@ -1058,20 +1058,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="keywordtype">void</span> WII::activateMotionPlus() {</div>
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; uint8_t buf[1];</div>
<div class="line"><a name="l00969"></a><span class="lineno"> 969</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="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Wii U Pro Controller&quot;</span>), 0x80);</div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</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="l00972"></a><span class="lineno"> 972</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00973"></a><span class="lineno"> 973</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="l00974"></a><span class="lineno"> 974</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activateNunchuck) {</div>
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in pass-through mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00976"></a><span class="lineno"> 976</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="l00977"></a><span class="lineno"> 977</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor"></span> buf[0] = 0x05; <span class="comment">// Activate nunchuck pass-through mode</span></div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; } <span class="comment">//else if(classicControllerConnected &amp;&amp; extensionConnected)</span></div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="comment">//buf[0] = 0x07;</span></div>
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nActivating Motion Plus in normal mode&quot;</span>), 0x80);</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</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="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</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="l00986"></a><span class="lineno"> 986</span>&#160; }</div>
@ -1162,59 +1162,59 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l01071"></a><span class="lineno"><a class="code" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5"> 1071</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="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; enableIRCamera1();</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera1 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</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="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; enableIRCamera2();</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nEnable IR Camera2 Complete&quot;</span>), 0x80);</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</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="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; write0x08Value();</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote hex number 0x08&quot;</span>), 0x80);</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</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="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; writeSensitivityBlock1();</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 1&quot;</span>), 0x80);</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</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="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; writeSensitivityBlock2();</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nWrote Sensitivity Block 2&quot;</span>), 0x80);</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</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="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; uint8_t mode_num = 0x03;</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</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="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Wii Mode Number To 0x&quot;</span>), 0x80);</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\nSet Wii Mode Number To 0x&quot;</span>), 0x80);</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; PrintHex&lt;uint8_t &gt; (mode_num, 0x80);</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; write0x08Value();</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</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="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; setReportMode(<span class="keyword">false</span>, 0x33);</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">//setReportMode(false, 0x3f); // For full reporting mode, doesn&#39;t work yet</span></div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet Report Mode to 0x33&quot;</span>), 0x80);</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</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="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor"></span> delay(80);</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="class_w_i_i.html#acf275afab058a712ab84fac6c38f8f54">statusRequest</a>(); <span class="comment">// Used to update wiiState - call isIRCameraEnabled() afterwards to check if it actually worked</span></div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nIR Initialized&quot;</span>), 0x80);</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</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="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div>
@ -1271,7 +1271,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -100,7 +100,7 @@ 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="551,75,596,96"/><area shape="rect" id="node20" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="621,75,707,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="314,283,371,304"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="648,283,709,304"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/><area shape="rect" id="node21" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="630,75,716,96"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="377,283,433,304"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="696,283,757,304"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -734,7 +734,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,15 +1,15 @@
<map id="Wii.h" name="Wii.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="551,75,596,96"/>
<area shape="rect" id="node20" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="621,75,707,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,213,331,235"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="635,144,719,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="5,352,59,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="180,352,247,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="181,283,237,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="97,352,156,373"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="314,283,371,304"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="648,283,709,304"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="650,352,707,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="783,352,844,373"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="715,213,780,235"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="560,75,605,96"/>
<area shape="rect" id="node21" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="630,75,716,96"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="287,213,329,235"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="649,144,732,165"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="30,352,84,373"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="261,352,328,373"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="169,283,225,304"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="109,352,168,373"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="377,283,433,304"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="696,283,757,304"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="686,421,743,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="731,352,792,373"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="729,213,793,235"/>
</map>

View file

@ -1 +1 @@
209252d4e5b8261066f58eb78ab79741
380938360619b3d9afcd74c5043e5627

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 79 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -396,7 +396,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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;Must omit the <span class="stringliteral">&quot;.&quot;</span> in the name of the USB\_Host\_Shiled\_2.0 library folder when inserting into the Arudino library folder.</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;This library is large, <span class="keywordflow">if</span> you run into memory problems when uploading to the Arduino, comment out the \#define <a class="code" href="_b_t_d_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a> in the <a class="code" href="class_b_t_d.html">BTD</a>.cpp and Wii.cpp files.</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;This library is large, <span class="keywordflow">if</span> you run into memory problems when uploading to the Arduino, comment out the \#define DEBUG in the <a class="code" href="class_b_t_d.html">BTD</a>.cpp and Wii.cpp files.</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;To enable the IR camera code, uncomment \#define <a class="code" href="_wii_8h.html#a8a70a2d3fd20f9005aa8dc5849beb147">WIICAMERA</a> in Wii.h.</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
@ -105,7 +105,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXRECV.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -85,8 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">XBOXRECV.cpp File Reference</div> </div>
</div><!--header-->
@ -97,37 +95,16 @@ Include dependency graph for XBOXRECV.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_x_b_o_x_r_e_c_v_8cpp__incl.png" border="0" usemap="#_x_b_o_x_r_e_c_v_8cpp" alt=""/></div>
<map name="_x_b_o_x_r_e_c_v_8cpp" id="_x_b_o_x_r_e_c_v_8cpp">
<area shape="rect" id="node2" href="_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="434,75,507,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/><area shape="rect" id="node18" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,144,723,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="701,213,757,235"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/></map>
<area shape="rect" id="node2" href="_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="342,75,415,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/><area shape="rect" id="node19" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,144,651,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="350,213,407,235"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/><area shape="rect" id="node20" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/></map>
</div>
</div>
<p><a href="_x_b_o_x_r_e_c_v_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_x_b_o_x_r_e_c_v_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00021">21</a> of file <a class="el" href="_x_b_o_x_r_e_c_v_8cpp_source.html">XBOXRECV.cpp</a>.</p>
</div>
</div>
</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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<map id="XBOXRECV.cpp" name="XBOXRECV.cpp">
<area shape="rect" id="node2" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="434,75,507,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/>
<area shape="rect" id="node18" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,144,723,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="701,213,757,235"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/>
<area shape="rect" id="node2" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="342,75,415,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/>
<area shape="rect" id="node19" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,144,651,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="350,213,407,235"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/>
<area shape="rect" id="node20" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/>
</map>

View file

@ -1 +1 @@
3012a27875f68523ad5eb7ea0dd0b724
aa22d4482e816e4553f3f0e12625c189

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 62 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXRECV.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -109,8 +109,8 @@ 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">#include &quot;<a class="code" href="_x_b_o_x_r_e_c_v_8h.html">XBOXRECV.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="_x_b_o_x_r_e_c_v_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83"> 21</a></span>&#160;<span class="preprocessor">#define DEBUG // Uncomment to print data for debugging</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"></span><span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// To enable serial debugging uncomment &quot;#define DEBUG_USB_HOST&quot; in message.h</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ac856259af28db351f85302b5eddabf1d"> 25</a></span>&#160;<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac856259af28db351f85302b5eddabf1d">XBOXRECV::XBOXRECV</a>(<a class="code" href="class_u_s_b.html">USB</a> *p) :</div>
@ -139,12 +139,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXBOXRECV Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXBOXRECV Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>) {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</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="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
@ -153,15 +153,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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"> 64</span>&#160; <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</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="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</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="keywordflow">if</span> (!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</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\nepinfo is null&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_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; rcode = <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; rcode = <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
@ -188,8 +188,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (VID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a>) <span class="comment">// We just check if it&#39;s a xbox receiver using the Vendor ID</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a1a97ce2829a30b96ea6640d387d245a9">XBOX_WIRELESS_RECEIVER_PID</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a6842663964e470b86786f046e4bc30d9">XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</a>) {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nYou&#39;ll need a wireless receiver for this libary to work&quot;</span>), 0x80);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nYou&#39;ll need a wireless receiver for this libary to work&quot;</span>), 0x80);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
@ -209,14 +209,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00118"></a><span class="lineno"> 118</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="l00119"></a><span class="lineno"> 119</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a> = 0;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"></span> PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> rcode;</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\nsetAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</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; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</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; PrintHex&lt;uint8_t &gt; (<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>, 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> p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
@ -300,8 +300,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Wireless Receiver Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Wireless Receiver Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XboxReceiverConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
@ -309,315 +309,323 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; <span class="comment">/* diagnostic messages */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="message_8cpp.html#ace40a5d826a882de0c5a25aece111d3f">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="message_8cpp.html#aa65008f9251787149e391f89e68b32be">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSetConfDescr:</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="message_8cpp.html#a08b840c377ca6f8154d6924d51338d89">NotifyFailSetConfDescr</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;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="message_8cpp.html#a7103129ed2b7b7896461c0a3cd924eb4">NotifyFailUnknownDevice</a>(VID,PID);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</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;Fail:</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a5ae2cb9bf877595104f2425f50e2057f">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">Release</a>();</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</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="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a"> 246</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">XBOXRECV::Release</a>() {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XboxReceiverConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++)</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[i] = 0x00;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a> = 0;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc"> 256</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc">XBOXRECV::Poll</a>() {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (!timer || ((millis() - timer) &gt; 3000)) { <span class="comment">// Run checkStatus every 3 seconds</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; timer = millis();</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; checkStatus();</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint8_t inputPipe;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; uint16_t bufferSize;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">switch</span> (i) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">case</span> 0: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a2824b25aa9a384c29f27a4e1bb443799">XBOX_INPUT_PIPE_1</a>;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">case</span> 1: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#aab6feb681a78b190190bcc081868a485">XBOX_INPUT_PIPE_2</a>;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> 2: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a86a3e5765d02bc043d5d1f674a7ffb0f">XBOX_INPUT_PIPE_3</a>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">case</span> 3: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a5acfdaefe74aba1632c71acb79c49671">XBOX_INPUT_PIPE_4</a>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; bufferSize = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>; <span class="comment">// This is the maximum number of bytes we want to receive</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>, <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[ inputPipe ].epAddr, &amp;bufferSize, readBuf);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (bufferSize &gt; 0) { <span class="comment">// The number of received bytes</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;Bytes Received: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; PrintHex&lt;uint16_t &gt; (bufferSize, 0x80);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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> readReport(i);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"></span> printReport(i, bufferSize); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"></span> }</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; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keywordtype">void</span> XBOXRECV::readReport(uint8_t controller) {</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// This report is send when a controller is connected and disconnected</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (readBuf[0] == 0x08 &amp;&amp; readBuf[1] != <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller]) {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller] = readBuf[1];</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;Controller &quot;</span>), 0x80);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(controller, 0x80);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller]) {</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"></span> <span class="keywordtype">char</span>* str = 0;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">switch</span> (readBuf[1]) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">case</span> 0x80: str = PSTR(<span class="stringliteral">&quot; as controller\r\n&quot;</span>);</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">case</span> 0x40: str = PSTR(<span class="stringliteral">&quot; as headset\r\n&quot;</span>);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">case</span> 0xC0: str = PSTR(<span class="stringliteral">&quot; as controller+headset\r\n&quot;</span>);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">break</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; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;: connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(str, 0x80);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"></span> <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">switch</span> (controller) {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> 0: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a>;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">goto</span> Fail;</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="l00232"></a><span class="lineno"> 232</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID,PID);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;Fail:</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</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> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">Release</a>();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a"> 254</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">XBOXRECV::Release</a>() {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XboxReceiverConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++)</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[i] = 0x00;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a> = 0;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc"> 264</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc">XBOXRECV::Poll</a>() {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span> (!timer || ((millis() - timer) &gt; 3000)) { <span class="comment">// Run checkStatus every 3 seconds</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; timer = millis();</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; checkStatus();</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; uint8_t inputPipe;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; uint16_t bufferSize;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">switch</span> (i) {</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">case</span> 0: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a2824b25aa9a384c29f27a4e1bb443799">XBOX_INPUT_PIPE_1</a>;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">case</span> 1: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#aab6feb681a78b190190bcc081868a485">XBOX_INPUT_PIPE_2</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">case</span> 2: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a86a3e5765d02bc043d5d1f674a7ffb0f">XBOX_INPUT_PIPE_3</a>;</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; <span class="keywordflow">case</span> 3: inputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a5acfdaefe74aba1632c71acb79c49671">XBOX_INPUT_PIPE_4</a>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">break</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; bufferSize = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>; <span class="comment">// This is the maximum number of bytes we want to receive</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>, <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[ inputPipe ].epAddr, &amp;bufferSize, readBuf);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (bufferSize &gt; 0) { <span class="comment">// The number of received bytes</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;Bytes Received: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; PrintHex&lt;uint16_t &gt; (bufferSize, 0x80);</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</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="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"></span> readReport(i);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"></span> printReport(i, bufferSize); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</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;<span class="keywordtype">void</span> XBOXRECV::readReport(uint8_t controller) {</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// This report is send when a controller is connected and disconnected</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (readBuf[0] == 0x08 &amp;&amp; readBuf[1] != <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller]) {</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller] = readBuf[1];</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> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;Controller &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>(controller, 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> <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller]) {</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span> <span class="keywordtype">char</span>* str = 0;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">switch</span> (readBuf[1]) {</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">case</span> 0x80: str = PSTR(<span class="stringliteral">&quot; as controller\r\n&quot;</span>);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">case</span> 0x40: str = PSTR(<span class="stringliteral">&quot; as headset\r\n&quot;</span>);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> 0xC0: str = PSTR(<span class="stringliteral">&quot; as controller+headset\r\n&quot;</span>);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">case</span> 1: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6a8379bbaa96d151e6adac488b2a147b7a">LED2</a>;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">case</span> 2: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6a5dec293e081e0fc78369c842fab8452b">LED3</a>;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">case</span> 3: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ad60e39b8d1701d30aa64f80343217342">LED4</a>;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">break</span>;</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; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a9e17aa44f2946e710fb9343f27290c85">setLedOn</a>(controller, led);</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="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;: disconnected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// Controller status report</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> (readBuf[1] == 0x00 &amp;&amp; readBuf[3] &amp; 0x13 &amp;&amp; readBuf[4] &gt;= 0x22) {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; controllerStatus[controller] = ((uint16_t)readBuf[3] &lt;&lt; 8) | readBuf[4];</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span> (readBuf[1] != 0x01) <span class="comment">// Check if it&#39;s the correct report - the receiver also sends different status reports</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// A controller must be connected if it&#39;s sending data</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller])</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller] |= 0x80;</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; ButtonState[controller] = (uint32_t)(readBuf[9] | ((uint16_t)readBuf[8] &lt;&lt; 8) | ((uint32_t)readBuf[7] &lt;&lt; 16) | ((uint32_t)readBuf[6] &lt;&lt; 24));</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[11] &lt;&lt; 8) | readBuf[10]);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[13] &lt;&lt; 8) | readBuf[12]);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[15] &lt;&lt; 8) | readBuf[14]);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[17] &lt;&lt; 8) | readBuf[16]);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState: &quot;), 0x80);</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState[controller], 0x80);</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</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;: connected&quot;</span>), 0x80);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(str, 0x80);</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"></span> <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">switch</span> (controller) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> 0: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a>;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> 1: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6a8379bbaa96d151e6adac488b2a147b7a">LED2</a>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">case</span> 2: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6a5dec293e081e0fc78369c842fab8452b">LED3</a>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> 3: led = <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ad60e39b8d1701d30aa64f80343217342">LED4</a>;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a4ab056654c97c054aebb683cac95e21b">setLedOn</a>(led, controller);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;: disconnected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// Controller status report</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (readBuf[1] == 0x00 &amp;&amp; readBuf[3] &amp; 0x13 &amp;&amp; readBuf[4] &gt;= 0x22) {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; controllerStatus[controller] = ((uint16_t)readBuf[3] &lt;&lt; 8) | readBuf[4];</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (readBuf[1] != 0x01) <span class="comment">// Check if it&#39;s the correct report - the receiver also sends different status reports</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">// A controller must be connected if it&#39;s sending data</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller])</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[controller] |= 0x80;</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; ButtonState[controller] = (uint32_t)(readBuf[9] | ((uint16_t)readBuf[8] &lt;&lt; 8) | ((uint32_t)readBuf[7] &lt;&lt; 16) | ((uint32_t)readBuf[6] &lt;&lt; 24));</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; <span class="keywordflow">if</span> (ButtonState[controller] != OldButtonState[controller]) {</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; buttonStateChanged[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; ButtonClickState[controller] = (ButtonState[controller] &gt;&gt; 16) &amp; ((~OldButtonState[controller]) &gt;&gt; 16); <span class="comment">// Update click state variable, but don&#39;t include the two trigger buttons L2 and R2</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span> (((uint8_t)OldButtonState[controller]) == 0 &amp;&amp; ((uint8_t)ButtonState[controller]) != 0) <span class="comment">// The L2 and R2 buttons are special as they are analog buttons</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; R2Clicked[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span> ((uint8_t)(OldButtonState[controller] &gt;&gt; 8) == 0 &amp;&amp; (uint8_t)(ButtonState[controller] &gt;&gt; 8) != 0)</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; L2Clicked[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; OldButtonState[controller] = ButtonState[controller];</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</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;<span class="keywordtype">void</span> XBOXRECV::printReport(uint8_t controller, uint8_t nBytes) { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;Controller &quot;</span>), 0x80);</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(controller, 0x80);</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; nBytes; i++) {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&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>}</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ad33cd16d10e438bb8051f7fa6052f6c9"> 384</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad33cd16d10e438bb8051f7fa6052f6c9">XBOXRECV::getButtonPress</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState[controller] &gt;&gt; 8);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState[controller];</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)(ButtonState[controller] &amp; ((uint32_t)pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]) &lt;&lt; 16));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[11] &lt;&lt; 8) | readBuf[10]);</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[13] &lt;&lt; 8) | readBuf[12]);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[15] &lt;&lt; 8) | readBuf[14]);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; hatValue[controller][<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[17] &lt;&lt; 8) | readBuf[16]);</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; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState: &quot;), 0x80);</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState[controller], 0x80);</span></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; <span class="keywordflow">if</span> (ButtonState[controller] != OldButtonState[controller]) {</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; buttonStateChanged[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; ButtonClickState[controller] = (ButtonState[controller] &gt;&gt; 16) &amp; ((~OldButtonState[controller]) &gt;&gt; 16); <span class="comment">// Update click state variable, but don&#39;t include the two trigger buttons L2 and R2</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> (((uint8_t)OldButtonState[controller]) == 0 &amp;&amp; ((uint8_t)ButtonState[controller]) != 0) <span class="comment">// The L2 and R2 buttons are special as they are analog buttons</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; R2Clicked[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> ((uint8_t)(OldButtonState[controller] &gt;&gt; 8) == 0 &amp;&amp; (uint8_t)(ButtonState[controller] &gt;&gt; 8) != 0)</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; L2Clicked[controller] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; OldButtonState[controller] = ButtonState[controller];</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;}</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="keywordtype">void</span> XBOXRECV::printReport(uint8_t controller, uint8_t nBytes) { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;Controller &quot;</span>), 0x80);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(controller, 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;: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; nBytes; i++) {</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</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="l00387"></a><span class="lineno"> 387</span>&#160; }</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\n&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>}</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a5e9a59d90ec1941c7152cdd438c284d0"> 392</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5e9a59d90ec1941c7152cdd438c284d0">XBOXRECV::getButtonClick</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) {</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span> (L2Clicked[controller]) {</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; L2Clicked[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>) {</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span> (R2Clicked[controller]) {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; R2Clicked[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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; uint16_t button = pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState[controller] &amp; button);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; ButtonClickState[controller] &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> click;</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;</div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a1b277f0980bd53f30283d4af9d9b8926"> 412</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1b277f0980bd53f30283d4af9d9b8926">XBOXRECV::getAnalogHat</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> hatValue[controller][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;</div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#aa2263642c0d422c6d21fed3933d6044c"> 416</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#aa2263642c0d422c6d21fed3933d6044c">XBOXRECV::buttonChanged</a>(uint8_t controller) {</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">bool</span> state = buttonStateChanged[controller];</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; buttonStateChanged[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> state;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;}</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="comment">/*</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment">ControllerStatus Breakdown</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0001 // 0</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0002 // normal batteries, no rechargeable battery pack</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0004 // controller starting up / settling</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0008 // headset adapter plugged in, but no headphones connected (mute?)</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0010 // 0</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0020 // 1</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0040 // battery level (high bit)</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0080 // battery level (low bit)</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0100 // 1</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0200 // 1</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0400 // headset adapter plugged in</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0800 // 0</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x1000 // 1</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x2000 // 0</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x4000 // 0</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x8000 // 0</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a671caa6d19debca8ff14dc82ac3ed005"> 441</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a671caa6d19debca8ff14dc82ac3ed005">XBOXRECV::getBatteryLevel</a>(uint8_t controller) {</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> ((controllerStatus[controller] &amp; 0x00C0) &gt;&gt; 6);</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;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keywordtype">void</span> XBOXRECV::XboxCommand(uint8_t controller, uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; uint8_t outputPipe;</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">switch</span> (controller) {</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">case</span> 0: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a962be1e740bce25cf37e111bd88be9bf">XBOX_OUTPUT_PIPE_1</a>;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">case</span> 1: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8ba688a4bdb47869d7ee3f49b6d07b7c">XBOX_OUTPUT_PIPE_2</a>;</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; <span class="keywordflow">case</span> 2: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#afce4154cabb3a0d2c7eeb39b1c15d353">XBOX_OUTPUT_PIPE_3</a>;</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; <span class="keywordflow">case</span> 3: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a7a74e0ea052831dbbb4a0973fffc8179">XBOX_OUTPUT_PIPE_4</a>;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">break</span>;</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"> 458</span>&#160; rcode = <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>, <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[ outputPipe ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;Error sending Xbox message\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"></span>}</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d"> 465</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">XBOXRECV::setLedRaw</a>(uint8_t controller, uint8_t value) {</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; writeBuf[2] = 0x08;</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; writeBuf[3] = value | 0x40;</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; XboxCommand(controller, writeBuf, 4);</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a9e17aa44f2946e710fb9343f27290c85"> 474</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a9e17aa44f2946e710fb9343f27290c85">XBOXRECV::setLedOn</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span> (led != <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a>) <span class="comment">// All LEDs can&#39;t be on a the same time</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">setLedRaw</a>(controller, (pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led])) + 4);</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;}</div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a14f355acaf2cfad072c0c7c139a3e1b2"> 392</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a14f355acaf2cfad072c0c7c139a3e1b2">XBOXRECV::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b, uint8_t controller) {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState[controller] &gt;&gt; 8);</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState[controller];</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)(ButtonState[controller] &amp; ((uint32_t)pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]) &lt;&lt; 16));</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;</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a163310ab5d09b8192bebf57b4db9131f"> 400</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a163310ab5d09b8192bebf57b4db9131f">XBOXRECV::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b, uint8_t controller) {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) {</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span> (L2Clicked[controller]) {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; L2Clicked[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>) {</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span> (R2Clicked[controller]) {</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; R2Clicked[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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">return</span> <span class="keyword">false</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; uint16_t button = pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState[controller] &amp; button);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; ButtonClickState[controller] &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> click;</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="code" href="class_x_b_o_x_r_e_c_v.html#aef2c97b6f1d6eba631477f2d6c9f6de5"> 420</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aef2c97b6f1d6eba631477f2d6c9f6de5">XBOXRECV::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a, uint8_t controller) {</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> hatValue[controller][a];</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;}</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
<div class="line"><a name="l00424"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ae78ddfff307d26b0ed35dfb75173adf7"> 424</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ae78ddfff307d26b0ed35dfb75173adf7">XBOXRECV::buttonChanged</a>(uint8_t controller) {</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">bool</span> state = buttonStateChanged[controller];</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; buttonStateChanged[controller] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> state;</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;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment">ControllerStatus Breakdown</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0001 // 0</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0002 // normal batteries, no rechargeable battery pack</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0004 // controller starting up / settling</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0008 // headset adapter plugged in, but no headphones connected (mute?)</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0010 // 0</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0020 // 1</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0040 // battery level (high bit)</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0080 // battery level (low bit)</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0100 // 1</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0200 // 1</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0400 // headset adapter plugged in</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x0800 // 0</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x1000 // 1</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x2000 // 0</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x4000 // 0</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="comment"> ControllerStatus[controller] &amp; 0x8000 // 0</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#aaa7a0d0861b8303a4b1654684d185b4f"> 449</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aaa7a0d0861b8303a4b1654684d185b4f">XBOXRECV::getBatteryLevel</a>(uint8_t controller) {</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> ((controllerStatus[controller] &amp; 0x00C0) &gt;&gt; 6);</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;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="keywordtype">void</span> XBOXRECV::XboxCommand(uint8_t controller, uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint8_t outputPipe;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">switch</span> (controller) {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">case</span> 0: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a962be1e740bce25cf37e111bd88be9bf">XBOX_OUTPUT_PIPE_1</a>;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">case</span> 1: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8ba688a4bdb47869d7ee3f49b6d07b7c">XBOX_OUTPUT_PIPE_2</a>;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> 2: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#afce4154cabb3a0d2c7eeb39b1c15d353">XBOX_OUTPUT_PIPE_3</a>;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">case</span> 3: outputPipe = <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a7a74e0ea052831dbbb4a0973fffc8179">XBOX_OUTPUT_PIPE_4</a>;</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; }</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; rcode = <a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>, <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[ outputPipe ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (rcode)</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;Error sending Xbox message\r\n&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>}</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125"> 473</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">XBOXRECV::setLedRaw</a>(uint8_t value, uint8_t controller) {</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; writeBuf[2] = 0x08;</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; writeBuf[3] = value | 0x40;</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a54490f57e16eaee6689ca92351958017"> 479</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a54490f57e16eaee6689ca92351958017">XBOXRECV::setLedBlink</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">setLedRaw</a>(controller, pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led]));</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;}</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
<div class="line"><a name="l00483"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ace7deafed6fa6991d38417b41a490c57"> 483</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ace7deafed6fa6991d38417b41a490c57">XBOXRECV::setLedMode</a>(uint8_t controller, <a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> ledMode) { <span class="comment">// This function is used to do some speciel LED stuff the controller supports</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">setLedRaw</a>(controller, (uint8_t)ledMode);</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; XboxCommand(controller, writeBuf, 4);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;}</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a4ab056654c97c054aebb683cac95e21b"> 482</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a4ab056654c97c054aebb683cac95e21b">XBOXRECV::setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led, uint8_t controller) {</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span> (led != <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a>) <span class="comment">// All LEDs can&#39;t be on a the same time</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">setLedRaw</a>(pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led]) + 4, controller);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment">/* PC runs this at interval of approx 2 seconds</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment">Thanks to BusHound from Perisoft.net for the Windows USB Analysis output</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment">Found by timstamp.co.uk</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="keywordtype">void</span> XBOXRECV::checkStatus() {</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// Get controller info</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; writeBuf[0] = 0x08;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; writeBuf[2] = 0x0f;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; writeBuf[3] = 0xc0;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; XboxCommand(i, writeBuf, 4);</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// Get battery status</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ad66796b66d332bfa1cb57b4ba76cb0fc"> 487</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad66796b66d332bfa1cb57b4ba76cb0fc">XBOXRECV::setLedBlink</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led, uint8_t controller) {</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">setLedRaw</a>(pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led]), controller);</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;</div>
<div class="line"><a name="l00491"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#abb75b732b431a29b6fef0fd7c895f41b"> 491</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#abb75b732b431a29b6fef0fd7c895f41b">XBOXRECV::setLedMode</a>(<a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> ledMode, uint8_t controller) { <span class="comment">// This function is used to do some speciel LED stuff the controller supports</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">setLedRaw</a>((uint8_t)ledMode, controller);</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;</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="comment">/* PC runs this at interval of approx 2 seconds</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment">Thanks to BusHound from Perisoft.net for the Windows USB Analysis output</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment">Found by timstamp.co.uk</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keywordtype">void</span> XBOXRECV::checkStatus() {</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// Get controller info</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; writeBuf[0] = 0x08;</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; writeBuf[3] = 0x40;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; writeBuf[2] = 0x0f;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; writeBuf[3] = 0xc0;</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[i])</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; XboxCommand(i, writeBuf, 4);</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"> 511</span>&#160;}</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div>
<div class="line"><a name="l00513"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#afd1f58838a9aea8e742103fddbe8fe69"> 513</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#afd1f58838a9aea8e742103fddbe8fe69">XBOXRECV::setRumbleOn</a>(uint8_t controller, uint8_t lValue, uint8_t rValue) {</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; writeBuf[1] = 0x01;</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; writeBuf[2] = 0x0f;</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; writeBuf[3] = 0xc0;</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; writeBuf[4] = 0x00;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; writeBuf[5] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; writeBuf[6] = rValue; <span class="comment">// small weight</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; XboxCommand(controller, writeBuf, 7);</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;}</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; XboxCommand(i, writeBuf, 4);</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">// Get battery status</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; writeBuf[3] = 0x40;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[i])</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; XboxCommand(i, writeBuf, 4);</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</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="code" href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76"> 521</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">XBOXRECV::setRumbleOn</a>(uint8_t lValue, uint8_t rValue, uint8_t controller) {</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; writeBuf[1] = 0x01;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; writeBuf[2] = 0x0f;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; writeBuf[3] = 0xc0;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; writeBuf[4] = 0x00;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; writeBuf[5] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; writeBuf[6] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; XboxCommand(controller, writeBuf, 7);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXRECV.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -100,7 +100,7 @@ Include dependency graph for XBOXRECV.h:</div>
<div class="dyncontent">
<div class="center"><img src="_x_b_o_x_r_e_c_v_8h__incl.png" border="0" usemap="#_x_b_o_x_r_e_c_v_8h" alt=""/></div>
<map name="_x_b_o_x_r_e_c_v_8h" id="_x_b_o_x_r_e_c_v_8h">
<area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/><area shape="rect" id="node17" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,75,723,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="701,144,757,165"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="204,144,265,165"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node18" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/></map>
<area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/><area shape="rect" id="node18" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,75,651,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="350,144,407,165"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="643,144,704,165"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -382,7 +382,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,13 +1,13 @@
<map id="XBOXRECV.h" name="XBOXRECV.h">
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/>
<area shape="rect" id="node17" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,75,723,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="701,144,757,165"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="204,144,265,165"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node18" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/>
<area shape="rect" id="node18" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,75,651,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="350,144,407,165"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="643,144,704,165"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/>
</map>

View file

@ -1 +1 @@
4ba38c24b020d5cb04bd0339f7b48ca5
17a0a5cb3f51c98b8fdd7b345f1ab613

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 60 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXRECV.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -161,29 +161,29 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a570568108edafee8d060aad8fe40db57"> 103</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a570568108edafee8d060aad8fe40db57">isReady</a>() {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad33cd16d10e438bb8051f7fa6052f6c9">getButtonPress</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5e9a59d90ec1941c7152cdd438c284d0">getButtonClick</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; int16_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1b277f0980bd53f30283d4af9d9b8926">getAnalogHat</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a14f355acaf2cfad072c0c7c139a3e1b2">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b, uint8_t controller = 0);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a163310ab5d09b8192bebf57b4db9131f">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b, uint8_t controller = 0);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; int16_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aef2c97b6f1d6eba631477f2d6c9f6de5">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a, uint8_t controller = 0);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a65f4ca4dc0156418fbac30060c06730d"> 138</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a65f4ca4dc0156418fbac30060c06730d">setAllOff</a>(uint8_t controller) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#afd1f58838a9aea8e742103fddbe8fe69">setRumbleOn</a>(controller, 0, 0);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#abedb93ccf24954f652d8f1cbc138924f">setLedOff</a>(controller);</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751"> 138</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751">setAllOff</a>(uint8_t controller = 0) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">setRumbleOn</a>(0, 0, controller);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a">setLedOff</a>(controller);</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="l00147"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#aa75c1d01b94b7c50fb518bc0f9228782"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#aa75c1d01b94b7c50fb518bc0f9228782">setRumbleOff</a>(uint8_t controller) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#afd1f58838a9aea8e742103fddbe8fe69">setRumbleOn</a>(controller, 0, 0);</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5">setRumbleOff</a>(uint8_t controller = 0) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">setRumbleOn</a>(0, 0, controller);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#afd1f58838a9aea8e742103fddbe8fe69">setRumbleOn</a>(uint8_t controller, uint8_t lValue, uint8_t rValue);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">setLedRaw</a>(uint8_t controller, uint8_t value);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">setRumbleOn</a>(uint8_t lValue, uint8_t rValue, uint8_t controller = 0);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">setLedRaw</a>(uint8_t value, uint8_t controller = 0);</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"><a class="code" href="class_x_b_o_x_r_e_c_v.html#abedb93ccf24954f652d8f1cbc138924f"> 170</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#abedb93ccf24954f652d8f1cbc138924f">setLedOff</a>(uint8_t controller) {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a354ede498c38b95a60c1b27deb01e47d">setLedRaw</a>(controller, 0);</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a"> 170</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a">setLedOff</a>(uint8_t controller = 0) {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">setLedRaw</a>(0, controller);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; };</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a9e17aa44f2946e710fb9343f27290c85">setLedOn</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a54490f57e16eaee6689ca92351958017">setLedBlink</a>(uint8_t controller, <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ace7deafed6fa6991d38417b41a490c57">setLedMode</a>(uint8_t controller, <a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> lm);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a671caa6d19debca8ff14dc82ac3ed005">getBatteryLevel</a>(uint8_t controller);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#aa2263642c0d422c6d21fed3933d6044c">buttonChanged</a>(uint8_t controller);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a4ab056654c97c054aebb683cac95e21b">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l, uint8_t controller = 0);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ad66796b66d332bfa1cb57b4ba76cb0fc">setLedBlink</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l, uint8_t controller = 0);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#abb75b732b431a29b6fef0fd7c895f41b">setLedMode</a>(<a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> lm, uint8_t controller = 0);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#aaa7a0d0861b8303a4b1654684d185b4f">getBatteryLevel</a>(uint8_t controller = 0);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ae78ddfff307d26b0ed35dfb75173adf7">buttonChanged</a>(uint8_t controller = 0);</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c"> 206</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XboxReceiverConnected</a>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a"> 208</a></span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">Xbox360Connected</a>[4];</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
@ -224,7 +224,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXUSB.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -85,8 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">XBOXUSB.cpp File Reference</div> </div>
</div><!--header-->
@ -97,37 +95,16 @@ Include dependency graph for XBOXUSB.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_x_b_o_x_u_s_b_8cpp__incl.png" border="0" usemap="#_x_b_o_x_u_s_b_8cpp" alt=""/></div>
<map name="_x_b_o_x_u_s_b_8cpp" id="_x_b_o_x_u_s_b_8cpp">
<area shape="rect" id="node2" href="_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="437,75,504,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/><area shape="rect" id="node18" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,144,723,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="701,213,757,235"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/></map>
<area shape="rect" id="node2" href="_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="345,75,412,96"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/><area shape="rect" id="node19" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,144,651,165"/><area shape="rect" id="node7" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/><area shape="rect" id="node9" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/><area shape="rect" id="node10" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/><area shape="rect" id="node11" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="350,213,407,235"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/><area shape="rect" id="node20" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/></map>
</div>
</div>
<p><a href="_x_b_o_x_u_s_b_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_x_b_o_x_u_s_b_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a></td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8cpp_source.html#l00019">19</a> of file <a class="el" href="_x_b_o_x_u_s_b_8cpp_source.html">XBOXUSB.cpp</a>.</p>
</div>
</div>
</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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<map id="XBOXUSB.cpp" name="XBOXUSB.cpp">
<area shape="rect" id="node2" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="437,75,504,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,144,492,165"/>
<area shape="rect" id="node18" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,144,723,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,283,528,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,283,620,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,213,499,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,283,449,304"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="701,213,757,235"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,283,128,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,283,265,304"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,213,868,235"/>
<area shape="rect" id="node2" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="345,75,412,96"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,144,400,165"/>
<area shape="rect" id="node19" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,144,651,165"/>
<area shape="rect" id="node7" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,283,97,304"/>
<area shape="rect" id="node9" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,283,341,304"/>
<area shape="rect" id="node10" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,213,256,235"/>
<area shape="rect" id="node11" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,283,181,304"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="350,213,407,235"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,352,803,373"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,283,704,304"/>
<area shape="rect" id="node20" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,213,815,235"/>
</map>

View file

@ -1 +1 @@
1b8350cfc5b0ac72ce377d1cdd1d6c17
e0b5f50a0597a1ef535805e8be65fdb4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 62 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXUSB.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<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">#include &quot;<a class="code" href="_x_b_o_x_u_s_b_8h.html">XBOXUSB.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="_x_b_o_x_u_s_b_8cpp.html#ad72dbcf6d0153db1b8d8a58001feed83"> 19</a></span>&#160;<span class="preprocessor">#define DEBUG // Uncomment to print data for debugging</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span><span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// To enable serial debugging uncomment &quot;#define DEBUG_USB_HOST&quot; in message.h</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//#define EXTRADEBUG // Uncomment to get even more debugging data</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#define PRINTREPORT // Uncomment to print the report send by the Xbox 360 Controller</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"><a class="code" href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2"> 23</a></span>&#160;<a class="code" href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2">XBOXUSB::XBOXUSB</a>(<a class="code" href="class_u_s_b.html">USB</a> *p) :</div>
@ -137,12 +137,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXBOXUSB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXBOXUSB Init&quot;</span>), 0x80);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</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="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>), 0x80);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</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="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
@ -151,15 +151,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</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="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</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="l00069"></a><span class="lineno"> 69</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="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nepinfo is null&quot;</span>), 0x80);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</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="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;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; rcode = <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; rcode = <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf); <span class="comment">// Get device descriptor - addr, ep, nbytes, data</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
@ -186,13 +186,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (VID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a>) <span class="comment">// We just check if it&#39;s a xbox controller using the Vendor ID</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (PID == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a10c2a7a8da78e76d7020c2c347f0a687">XBOX_WIRELESS_PID</a>) {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nYou have plugged in a wireless Xbox 360 controller - it doesn&#39;t support USB communication&quot;</span>), 0x80);</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\nYou have plugged in a wireless Xbox 360 controller - it doesn&#39;t support USB communication&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">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PID == <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a1a97ce2829a30b96ea6640d387d245a9">XBOX_WIRELESS_RECEIVER_PID</a> || PID == <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a6842663964e470b86786f046e4bc30d9">XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</a>) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThis library only supports Xbox 360 controllers via USB&quot;</span>), 0x80);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThis library only supports Xbox 360 controllers via USB&quot;</span>), 0x80);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
@ -212,14 +212,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00121"></a><span class="lineno"> 121</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="l00122"></a><span class="lineno"> 122</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a> = 0;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">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;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</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="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"></span> PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> rcode;</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"> 130</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</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="l00132"></a><span class="lineno"> 132</span>&#160; PrintHex&lt;uint8_t &gt; (<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</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>
@ -264,8 +264,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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 DEBUG</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Controller Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Controller Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">Xbox360Connected</a> = <span class="keyword">true</span>;</div>
@ -274,166 +274,174 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">/* diagnostic messages */</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="message_8cpp.html#ace40a5d826a882de0c5a25aece111d3f">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSetDevTblEntry:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="message_8cpp.html#aa65008f9251787149e391f89e68b32be">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="message_8cpp.html#a08b840c377ca6f8154d6924d51338d89">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;FailUnknownDevice:</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="message_8cpp.html#a7103129ed2b7b7896461c0a3cd924eb4">NotifyFailUnknownDevice</a>(VID,PID);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;Fail:</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8cpp.html#a5ae2cb9bf877595104f2425f50e2057f">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</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;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5"> 210</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a>() {</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">Xbox360Connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a> = 0;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12"> 218</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a>() {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uint16_t BUFFER_SIZE = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_u_s_b_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].epAddr, &amp;BUFFER_SIZE, readBuf); <span class="comment">// input on endpoint 1</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; readReport();</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span> printReport(); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keywordtype">void</span> XBOXUSB::readReport() {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (readBuf[0] != 0x00 || readBuf[1] != 0x14) { <span class="comment">// Check if it&#39;s the correct report - the controller also sends different status reports</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span>;</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;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; ButtonState = (uint32_t)(readBuf[5] | ((uint16_t)readBuf[4] &lt;&lt; 8) | ((uint32_t)readBuf[3] &lt;&lt; 16) | ((uint32_t)readBuf[2] &lt;&lt; 24));</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; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[7] &lt;&lt; 8) | readBuf[6]);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[9] &lt;&lt; 8) | readBuf[8]);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[11] &lt;&lt; 8) | readBuf[10]);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[13] &lt;&lt; 8) | readBuf[12]);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;FailSetConfDescr:</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#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"></span>FailUnknownDevice:</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;Fail:</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> rcode;</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="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5"> 218</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a>() {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">Xbox360Connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a> = 0;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> 0;</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="l00226"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12"> 226</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a>() {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint16_t BUFFER_SIZE = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_u_s_b_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].epAddr, &amp;BUFFER_SIZE, readBuf); <span class="comment">// input on endpoint 1</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; readReport();</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"></span> printReport(); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keywordtype">void</span> XBOXUSB::readReport() {</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (readBuf[0] != 0x00 || readBuf[1] != 0x14) { <span class="comment">// Check if it&#39;s the correct report - the controller also sends different status reports</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</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; ButtonState = (uint32_t)(readBuf[5] | ((uint16_t)readBuf[4] &lt;&lt; 8) | ((uint32_t)readBuf[3] &lt;&lt; 16) | ((uint32_t)readBuf[2] &lt;&lt; 24));</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="keywordflow">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; ButtonClickState = (ButtonState &gt;&gt; 16) &amp; ((~OldButtonState) &gt;&gt; 16); <span class="comment">// Update click state variable, but don&#39;t include the two trigger buttons L2 and R2</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (((uint8_t)OldButtonState) == 0 &amp;&amp; ((uint8_t)ButtonState) != 0) <span class="comment">// The L2 and R2 buttons are special as they are analog buttons</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> ((uint8_t)(OldButtonState &gt;&gt; 8) == 0 &amp;&amp; (uint8_t)(ButtonState &gt;&gt; 8) != 0)</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</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;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="keywordtype">void</span> XBOXUSB::printReport() { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a">XBOX_REPORT_BUFFER_SIZE</a>; i++) {</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</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; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"></span>}</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"><a class="code" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775"> 269</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775">XBOXUSB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState &gt;&gt; 8);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; ((uint32_t)pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]) &lt;&lt; 16));</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[7] &lt;&lt; 8) | readBuf[6]);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[9] &lt;&lt; 8) | readBuf[8]);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[11] &lt;&lt; 8) | readBuf[10]);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[13] &lt;&lt; 8) | readBuf[12]);</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="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; ButtonClickState = (ButtonState &gt;&gt; 16) &amp; ((~OldButtonState) &gt;&gt; 16); <span class="comment">// Update click state variable, but don&#39;t include the two trigger buttons L2 and R2</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (((uint8_t)OldButtonState) == 0 &amp;&amp; ((uint8_t)ButtonState) != 0) <span class="comment">// The L2 and R2 buttons are special as they are analog buttons</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> ((uint8_t)(OldButtonState &gt;&gt; 8) == 0 &amp;&amp; (uint8_t)(ButtonState &gt;&gt; 8) != 0)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</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;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keywordtype">void</span> XBOXUSB::printReport() { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox 360 Controller</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a">XBOX_REPORT_BUFFER_SIZE</a>; i++) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</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="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</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="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635"> 277</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635">XBOXUSB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (L2Clicked) {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>) {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (R2Clicked) {</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</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; uint16_t button = pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> click;</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="l00297"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff"> 297</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff">XBOXUSB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> hatValue[a];</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</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;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keywordtype">void</span> XBOXUSB::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x00), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x00, 0x02, 0x00, nbytes, nbytes, data, NULL);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e"> 307</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; writeBuf[0] = 0x01;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; writeBuf[1] = 0x03;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; writeBuf[2] = value;</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; XboxCommand(writeBuf, 3);</div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775"> 277</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775">XBOXUSB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState &gt;&gt; 8);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; ((uint32_t)pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]) &lt;&lt; 16));</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;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635"> 285</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635">XBOXUSB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a>) {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (L2Clicked) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a>) {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (R2Clicked) {</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; uint16_t button = pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> click;</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;</div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff"> 305</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff">XBOXUSB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> hatValue[a];</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="keywordtype">void</span> XBOXUSB::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">//bmRequest = Host to device (0x00) | Class (0x20) | Interface (0x01) = 0x21, bRequest = Set Report (0x09), Report ID (0x00), Report Type (Output 0x02), interface (0x00), datalength, datalength, data)</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a>].epAddr, <a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a>, <a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a>, 0x00, 0x02, 0x00, nbytes, nbytes, data, NULL);</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="code" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1"> 315</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1">XBOXUSB::setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span> (led != <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a>) <span class="comment">// All LEDs can&#39;t be on a the same time</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>((pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led])) + 4);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e"> 315</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a>(uint8_t value) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; writeBuf[0] = 0x01;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; writeBuf[1] = 0x03;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; writeBuf[2] = value;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6"> 320</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6">XBOXUSB::setLedBlink</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>(pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led]));</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="l00324"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e"> 324</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e">XBOXUSB::setLedMode</a>(<a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> ledMode) { <span class="comment">// This function is used to do some speciel LED stuff the controller supports</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>((uint8_t)ledMode);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; XboxCommand(writeBuf, 3);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;}</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"><a class="code" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1"> 323</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1">XBOXUSB::setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (led != <a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a>) <span class="comment">// All LEDs can&#39;t be on a the same time</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>((pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led])) + 4);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;}</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"><a class="code" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9"> 328</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a>(uint8_t lValue, uint8_t rValue) {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; writeBuf[1] = 0x08;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; writeBuf[3] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; writeBuf[4] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; writeBuf[5] = 0x00;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; writeBuf[6] = 0x00;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; writeBuf[7] = 0x00;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; XboxCommand(writeBuf, 8);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6"> 328</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6">XBOXUSB::setLedBlink</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> led) {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>(pgm_read_byte(&amp;<a class="code" href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a>[(uint8_t)led]));</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;</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e"> 332</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e">XBOXUSB::setLedMode</a>(<a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> ledMode) { <span class="comment">// This function is used to do some speciel LED stuff the controller supports</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>((uint8_t)ledMode);</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;</div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="code" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9"> 336</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a>(uint8_t lValue, uint8_t rValue) {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; writeBuf[1] = 0x08;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; writeBuf[3] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; writeBuf[4] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; writeBuf[5] = 0x00;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; writeBuf[6] = 0x00;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; writeBuf[7] = 0x00;</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"> 346</span>&#160; XboxCommand(writeBuf, 8);</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;}</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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXUSB.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -100,7 +100,7 @@ Include dependency graph for XBOXUSB.h:</div>
<div class="dyncontent">
<div class="center"><img src="_x_b_o_x_u_s_b_8h__incl.png" border="0" usemap="#_x_b_o_x_u_s_b_8h" alt=""/></div>
<map name="_x_b_o_x_u_s_b_8h" id="_x_b_o_x_u_s_b_8h">
<area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/><area shape="rect" id="node17" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,75,723,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="701,144,757,165"/><area shape="rect" id="node13" href="message_8h.html" title="message.h" alt="" coords="204,144,265,165"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/><area shape="rect" id="node18" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/></map>
<area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/><area shape="rect" id="node18" href="xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,75,651,96"/><area shape="rect" id="node6" href="avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/><area shape="rect" id="node8" href="max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/><area shape="rect" id="node9" href="usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/><area shape="rect" id="node10" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="350,144,407,165"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="643,144,704,165"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/><area shape="rect" id="node19" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -366,7 +366,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,13 +1,13 @@
<map id="XBOXUSB.h" name="XBOXUSB.h">
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="449,75,492,96"/>
<area shape="rect" id="node17" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="653,75,723,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="474,213,528,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="553,213,620,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="442,144,499,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="391,213,449,235"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="701,144,757,165"/>
<area shape="rect" id="node13" href="$message_8h.html" title="message.h" alt="" coords="204,144,265,165"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="71,213,128,235"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="204,213,265,235"/>
<area shape="rect" id="node18" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="782,144,868,165"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="357,75,400,96"/>
<area shape="rect" id="node18" href="$xbox_enums_8h.html" title="xboxEnums.h" alt="" coords="581,75,651,96"/>
<area shape="rect" id="node6" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="43,213,97,235"/>
<area shape="rect" id="node8" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="275,213,341,235"/>
<area shape="rect" id="node9" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="199,144,256,165"/>
<area shape="rect" id="node10" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="123,213,181,235"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="350,144,407,165"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="643,144,704,165"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="746,283,803,304"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="643,213,704,235"/>
<area shape="rect" id="node19" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="729,144,815,165"/>
</map>

View file

@ -1 +1 @@
1c6119f96994343efe9cd25fa3e34665
5d51cb4fe0c3c9ec85174b689556eadf

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 60 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: XBOXUSB.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -217,7 +217,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: address.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -299,7 +299,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: address.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -161,7 +161,7 @@ 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"><a class="code" href="address_8h.html#a3002da1b823cafeeac8ba4a33bb96905"> 71</a></span>&#160;<span class="preprocessor">#define bmUSB_DEV_ADDR_ADDRESS 0x07</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="address_8h.html#a61b78658a9cc75f61841f2a0ac8e54fa"> 72</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmUSB_DEV_ADDR_PARENT 0x38</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="address_8h.html#a32dbe85cf751ca8428d34c45a1931655"> 73</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmUSB_DEV_ADDR_HUB 0x40</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="address_8h.html#a32dbe85cf751ca8428d34c45a1931655"> 73</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define bmUSB_DEV_ADDR_HUB 0x40</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="struct_usb_device.html"> 75</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_usb_device.html">UsbDevice</a> {</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02"> 76</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>; <span class="comment">// endpoint info pointer</span></div>
@ -285,7 +285,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87"> 195</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87">AllocAddress</a>(uint8_t parent, <span class="keywordtype">bool</span> is_hub = <span class="keyword">false</span>, uint8_t port = 0) {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">/* if (parent != 0 &amp;&amp; port == 0)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> Serial.println(&quot;PRT:0&quot;); */</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> USB_HOST_SERIAL.println(&quot;PRT:0&quot;); */</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(parent &gt; 127 || port &gt; 7)</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> 0;</div>
@ -322,12 +322,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = *((uint8_t*) &amp; addr);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment"> Serial.print(&quot;Addr:&quot;);</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> Serial.print(addr.bmHub, HEX);</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> Serial.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> Serial.print(addr.bmParent, HEX);</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> Serial.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> Serial.println(addr.bmAddress, HEX);</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;Addr:&quot;);</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmHub, HEX);</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmParent, HEX);</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> USB_HOST_SERIAL.println(addr.bmAddress, HEX);</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; };</div>
@ -366,7 +366,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: adk.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -95,7 +95,7 @@ Include dependency graph for adk.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="adk_8cpp__incl.png" border="0" usemap="#adk_8cpp" alt=""/></div>
<map name="adk_8cpp" id="adk_8cpp">
<area shape="rect" id="node2" href="adk_8h.html" title="adk.h" alt="" coords="533,75,573,96"/><area shape="rect" id="node5" href="avrpins_8h.html" title="avrpins.h" alt="" coords="89,283,143,304"/><area shape="rect" id="node7" href="max3421e_8h.html" title="max3421e.h" alt="" coords="283,283,349,304"/><area shape="rect" id="node8" href="usbhost_8h.html" title="usbhost.h" alt="" coords="73,213,129,235"/><area shape="rect" id="node9" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="5,283,64,304"/><area shape="rect" id="node10" href="_usb_8h.html" title="Usb.h" alt="" coords="288,144,331,165"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="949,352,1005,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="701,352,763,373"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="701,283,763,304"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="739,144,823,165"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="433,213,489,235"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="819,213,884,235"/></map>
<area shape="rect" id="node2" href="adk_8h.html" title="adk.h" alt="" coords="553,75,593,96"/><area shape="rect" id="node5" href="avrpins_8h.html" title="avrpins.h" alt="" coords="126,283,180,304"/><area shape="rect" id="node7" href="max3421e_8h.html" title="max3421e.h" alt="" coords="280,283,347,304"/><area shape="rect" id="node8" href="usbhost_8h.html" title="usbhost.h" alt="" coords="195,213,252,235"/><area shape="rect" id="node9" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="556,283,615,304"/><area shape="rect" id="node11" href="_usb_8h.html" title="Usb.h" alt="" coords="476,144,519,165"/><area shape="rect" id="node17" href="printhex_8h.html" title="printhex.h" alt="" coords="1091,421,1148,443"/><area shape="rect" id="node18" href="hexdump_8h.html" title="hexdump.h" alt="" coords="1044,352,1105,373"/><area shape="rect" id="node16" href="message_8h.html" title="message.h" alt="" coords="976,283,1037,304"/><area shape="rect" id="node19" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="781,144,864,165"/><area shape="rect" id="node13" href="address_8h.html" title="address.h" alt="" coords="430,213,487,235"/><area shape="rect" id="node20" href="parsetools_8h.html" title="parsetools.h" alt="" coords="790,213,855,235"/></map>
</div>
</div>
<p><a href="adk_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for adk.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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,14 +1,14 @@
<map id="adk.cpp" name="adk.cpp">
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="533,75,573,96"/>
<area shape="rect" id="node5" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="89,283,143,304"/>
<area shape="rect" id="node7" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="283,283,349,304"/>
<area shape="rect" id="node8" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="73,213,129,235"/>
<area shape="rect" id="node9" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="5,283,64,304"/>
<area shape="rect" id="node10" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,144,331,165"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="949,352,1005,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="701,352,763,373"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="701,283,763,304"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="739,144,823,165"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="433,213,489,235"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="819,213,884,235"/>
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="553,75,593,96"/>
<area shape="rect" id="node5" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="126,283,180,304"/>
<area shape="rect" id="node7" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="280,283,347,304"/>
<area shape="rect" id="node8" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="195,213,252,235"/>
<area shape="rect" id="node9" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="556,283,615,304"/>
<area shape="rect" id="node11" href="$_usb_8h.html" title="Usb.h" alt="" coords="476,144,519,165"/>
<area shape="rect" id="node17" href="$printhex_8h.html" title="printhex.h" alt="" coords="1091,421,1148,443"/>
<area shape="rect" id="node18" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="1044,352,1105,373"/>
<area shape="rect" id="node16" href="$message_8h.html" title="message.h" alt="" coords="976,283,1037,304"/>
<area shape="rect" id="node19" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="781,144,864,165"/>
<area shape="rect" id="node13" href="$address_8h.html" title="address.h" alt="" coords="430,213,487,235"/>
<area shape="rect" id="node20" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="790,213,855,235"/>
</map>

View file

@ -1 +1 @@
8e1a236ca758d488357f4e29241421de
d603c7922054a57e1c948cf326e52d12

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 132 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: adk.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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">// Get device descriptor</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; rcode = <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE)">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; rcode = <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24" title="defined(USB_METHODS_INLINE) ">getDevDescr</a>(0, 0, <span class="keyword">sizeof</span> (<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">USB_DEVICE_DESCRIPTOR</a>), (uint8_t*)buf);</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="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
@ -318,115 +318,127 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="comment">/* diagnostic messages */</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="message_8cpp.html#ace40a5d826a882de0c5a25aece111d3f">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">goto</span> Fail;</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; <a class="code" href="message_8cpp.html#aa65008f9251787149e391f89e68b32be">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailGetConfDescr:</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="message_8cpp.html#a8990b7c46c3f20489c3f205fa173f110">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSetConfDescr:</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="message_8cpp.html#a08b840c377ca6f8154d6924d51338d89">NotifyFailSetConfDescr</a>();</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;FailGetProto:</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\ngetProto:&quot;</span>);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;FailSwAcc:</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nswAcc:&quot;</span>);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">goto</span> Fail;</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;SwAttempt:</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAccessory mode switch attempt&quot;</span>);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// goto Fail;</span></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;<span class="comment">//FailOnInit:</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// USBTRACE(&quot;OnInit:&quot;);</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// goto Fail;</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;Fail:</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nADK Init Failed, error code: &quot;, rcode);</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">//NotifyFail(rcode);</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">Release</a>();</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">/* Extracts bulk-IN and bulk-OUT endpoint information from config descriptor */</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"><a class="code" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75"> 269</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a>(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, <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> *pep) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Conf.Val&quot;), conf);</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Iface Num&quot;),iface);</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Alt.Set&quot;), alt);</span></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; <span class="comment">//added by Yuuichi Akagawa</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> == 3) {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span>;</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;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a> = conf;</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; uint8_t index;</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">// if ((pep-&gt;bmAttributes &amp; 0x02) == 2) {</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; index = ((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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a> &amp; 0x80) == 0x80) ? <a class="code" href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">epDataInIndex</a> : <a class="code" href="class_a_d_k.html#acfc5a7e45f15bba7ff8cd42552796624">epDataOutIndex</a>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// }</span></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; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[index].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = (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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a> &amp; 0x0F);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[index].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)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#af34105fa6bd0029d9c6b73d85f7853c6">wMaxPacketSize</a>;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;FailSetConfDescr:</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#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;FailGetProto:</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"></span> <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\ngetProto:&quot;</span>);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;FailSwAcc:</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"></span> <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nswAcc:&quot;</span>);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;SwAttempt:</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"></span> <a class="code" href="_usb_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAccessory mode switch attempt&quot;</span>);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"></span><span class="comment">//FailOnInit:</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// USBTRACE(&quot;OnInit:&quot;);</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// goto Fail;</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;Fail:</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nADK Init Failed, error code: &quot;, rcode);</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">//NotifyFail(rcode);</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">Release</a>();</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</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="comment">/* Extracts bulk-IN and bulk-OUT endpoint information from config descriptor */</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75"> 281</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a>(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, <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> *pep) {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Conf.Val&quot;), conf);</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Iface Num&quot;),iface);</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Alt.Set&quot;), alt);</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">//added by Yuuichi Akagawa</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> == 3) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span>;</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="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a>++;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a> = conf;</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="comment">//PrintEndpointDescriptor(pep);</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</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;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef"> 297</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a>() {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> = 1; <span class="comment">//must have to be reset to 1</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="class_a_d_k.html#a135db75b9e8cdd59b89f46c44dd83dd4">ready</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1"> 307</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr: &quot;, bAddress );</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nEP: &quot;,epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[<a class="code" href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">epDataInIndex</a>].epAddr, bytes_rcvd, dataptr);</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="l00313"></a><span class="lineno"><a class="code" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84"> 313</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[<a class="code" href="class_a_d_k.html#acfc5a7e45f15bba7ff8cd42552796624">epDataOutIndex</a>].epAddr, nbytes, dataptr);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="code" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50"> 317</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::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="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;Endpoint descriptor:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nLength:\t\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; 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="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nType:\t\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; 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#af39d036ab903a96b9d4d56b879555d6c">bDescriptorType</a>, 0x80);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; 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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a>, 0x80);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAttributes:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; 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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a>, 0x80);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMaxPktSize:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; PrintHex&lt;uint16_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#af34105fa6bd0029d9c6b73d85f7853c6">wMaxPacketSize</a>, 0x80);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nPoll Intrv:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; 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="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="message_8cpp.html#a1e8693828152de8408add858dc461dea">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; uint8_t index;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// if ((pep-&gt;bmAttributes &amp; 0x02) == 2) {</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; index = ((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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a> &amp; 0x80) == 0x80) ? <a class="code" href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">epDataInIndex</a> : <a class="code" href="class_a_d_k.html#acfc5a7e45f15bba7ff8cd42552796624">epDataOutIndex</a>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// }</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[index].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = (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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a> &amp; 0x0F);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[index].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)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#af34105fa6bd0029d9c6b73d85f7853c6">wMaxPacketSize</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a>++;</div>
<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="comment">//PrintEndpointDescriptor(pep);</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"><a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef"> 309</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a>() {</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</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; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> = 1; <span class="comment">//must have to be reset to 1</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; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="class_a_d_k.html#a135db75b9e8cdd59b89f46c44dd83dd4">ready</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;}</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="code" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1"> 319</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr: &quot;, bAddress );</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nEP: &quot;,epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[<a class="code" href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">epDataInIndex</a>].epAddr, bytes_rcvd, dataptr);</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="code" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84"> 325</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[<a class="code" href="class_a_d_k.html#acfc5a7e45f15bba7ff8cd42552796624">epDataOutIndex</a>].epAddr, nbytes, dataptr);</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="l00329"></a><span class="lineno"><a class="code" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50"> 329</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::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="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;Endpoint descriptor:&quot;</span>), 0x80);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160; 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="l00333"></a><span class="lineno"> 333</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>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; 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#af39d036ab903a96b9d4d56b879555d6c">bDescriptorType</a>, 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\nAddress:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; 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#a23fbb539d72d10a6cb12efedf7d3457c">bEndpointAddress</a>, 0x80);</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\nAttributes:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; 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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a>, 0x80);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nMaxPktSize:\t&quot;</span>), 0x80);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; PrintHex&lt;uint16_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#af34105fa6bd0029d9c6b73d85f7853c6">wMaxPacketSize</a>, 0x80);</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160; 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="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</span>&#160;}</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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: adk.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -109,7 +109,7 @@ Include dependency graph for adk.h:</div>
<div class="dyncontent">
<div class="center"><img src="adk_8h__incl.png" border="0" usemap="#adk_8h" alt=""/></div>
<map name="adk_8h" id="adk_8h">
<area shape="rect" id="node4" href="avrpins_8h.html" title="avrpins.h" alt="" coords="89,213,143,235"/><area shape="rect" id="node6" href="max3421e_8h.html" title="max3421e.h" alt="" coords="283,213,349,235"/><area shape="rect" id="node7" href="usbhost_8h.html" title="usbhost.h" alt="" coords="73,144,129,165"/><area shape="rect" id="node8" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="5,213,64,235"/><area shape="rect" id="node9" href="_usb_8h.html" title="Usb.h" alt="" coords="288,75,331,96"/><area shape="rect" id="node15" href="printhex_8h.html" title="printhex.h" alt="" coords="949,283,1005,304"/><area shape="rect" id="node16" href="hexdump_8h.html" title="hexdump.h" alt="" coords="701,283,763,304"/><area shape="rect" id="node14" href="message_8h.html" title="message.h" alt="" coords="701,213,763,235"/><area shape="rect" id="node17" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="739,75,823,96"/><area shape="rect" id="node11" href="address_8h.html" title="address.h" alt="" coords="433,144,489,165"/><area shape="rect" id="node18" href="parsetools_8h.html" title="parsetools.h" alt="" coords="819,144,884,165"/></map>
<area shape="rect" id="node4" href="avrpins_8h.html" title="avrpins.h" alt="" coords="126,213,180,235"/><area shape="rect" id="node6" href="max3421e_8h.html" title="max3421e.h" alt="" coords="280,213,347,235"/><area shape="rect" id="node7" href="usbhost_8h.html" title="usbhost.h" alt="" coords="195,144,252,165"/><area shape="rect" id="node8" href="usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="556,213,615,235"/><area shape="rect" id="node10" href="_usb_8h.html" title="Usb.h" alt="" coords="476,75,519,96"/><area shape="rect" id="node16" href="printhex_8h.html" title="printhex.h" alt="" coords="1091,352,1148,373"/><area shape="rect" id="node17" href="hexdump_8h.html" title="hexdump.h" alt="" coords="1044,283,1105,304"/><area shape="rect" id="node15" href="message_8h.html" title="message.h" alt="" coords="976,213,1037,235"/><area shape="rect" id="node18" href="confdescparser_8h.html" title="confdescparser.h" alt="" coords="781,75,864,96"/><area shape="rect" id="node12" href="address_8h.html" title="address.h" alt="" coords="430,144,487,165"/><area shape="rect" id="node19" href="parsetools_8h.html" title="parsetools.h" alt="" coords="790,144,855,165"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
@ -375,7 +375,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

View file

@ -1,13 +1,13 @@
<map id="adk.h" name="adk.h">
<area shape="rect" id="node4" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="89,213,143,235"/>
<area shape="rect" id="node6" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="283,213,349,235"/>
<area shape="rect" id="node7" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="73,144,129,165"/>
<area shape="rect" id="node8" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="5,213,64,235"/>
<area shape="rect" id="node9" href="$_usb_8h.html" title="Usb.h" alt="" coords="288,75,331,96"/>
<area shape="rect" id="node15" href="$printhex_8h.html" title="printhex.h" alt="" coords="949,283,1005,304"/>
<area shape="rect" id="node16" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="701,283,763,304"/>
<area shape="rect" id="node14" href="$message_8h.html" title="message.h" alt="" coords="701,213,763,235"/>
<area shape="rect" id="node17" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="739,75,823,96"/>
<area shape="rect" id="node11" href="$address_8h.html" title="address.h" alt="" coords="433,144,489,165"/>
<area shape="rect" id="node18" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="819,144,884,165"/>
<area shape="rect" id="node4" href="$avrpins_8h.html" title="avrpins.h" alt="" coords="126,213,180,235"/>
<area shape="rect" id="node6" href="$max3421e_8h.html" title="max3421e.h" alt="" coords="280,213,347,235"/>
<area shape="rect" id="node7" href="$usbhost_8h.html" title="usbhost.h" alt="" coords="195,144,252,165"/>
<area shape="rect" id="node8" href="$usb__ch9_8h.html" title="usb_ch9.h" alt="" coords="556,213,615,235"/>
<area shape="rect" id="node10" href="$_usb_8h.html" title="Usb.h" alt="" coords="476,75,519,96"/>
<area shape="rect" id="node16" href="$printhex_8h.html" title="printhex.h" alt="" coords="1091,352,1148,373"/>
<area shape="rect" id="node17" href="$hexdump_8h.html" title="hexdump.h" alt="" coords="1044,283,1105,304"/>
<area shape="rect" id="node15" href="$message_8h.html" title="message.h" alt="" coords="976,213,1037,235"/>
<area shape="rect" id="node18" href="$confdescparser_8h.html" title="confdescparser.h" alt="" coords="781,75,864,96"/>
<area shape="rect" id="node12" href="$address_8h.html" title="address.h" alt="" coords="430,144,487,165"/>
<area shape="rect" id="node19" href="$parsetools_8h.html" title="parsetools.h" alt="" coords="790,144,855,165"/>
</map>

View file

@ -1 +1 @@
22f03cde536a29beee865eef188aa9b8
fd763d9bb78c79172d4443cb1b77180d

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 129 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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: adk.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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -243,7 +243,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.3.1
</a> 1.8.4
</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.3.1"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>USB Host Shield 2.0: Class List</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.3.1 -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -169,7 +169,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.3.1
</a> 1.8.4
</small></address>
</body>
</html>

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