Updated documentation

This commit is contained in:
Kristian Lauszus 2014-01-10 18:20:37 +01:00
parent 0bee9afb25
commit c9f6f2e71b
1131 changed files with 61038 additions and 26152 deletions

View file

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for BTD.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,13 @@
<map id="BTD.h" name="BTD.h">
<area shape="rect" id="node2" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="5,83,77,111"/>
<area shape="rect" id="node3" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="102,83,175,111"/>
<area shape="rect" id="node5" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="199,83,272,111"/>
<area shape="rect" id="node7" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="303,83,360,111"/>
<area shape="rect" id="node9" href="$_wii_8h.html" title="Wii.h" alt="" coords="399,83,449,111"/>
<area shape="rect" id="node4" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="78,161,164,189"/>
<area shape="rect" id="node6" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="188,161,275,189"/>
<area shape="rect" id="node8" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="300,161,371,189"/>
<area shape="rect" id="node10" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="395,161,460,189"/>
<area shape="rect" id="node2" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="21,83,93,111"/>
<area shape="rect" id="node3" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="118,83,191,111"/>
<area shape="rect" id="node7" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="219,83,292,111"/>
<area shape="rect" id="node9" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="323,83,380,111"/>
<area shape="rect" id="node11" href="$_wii_8h.html" title="Wii.h" alt="" coords="419,83,469,111"/>
<area shape="rect" id="node4" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,161,91,189"/>
<area shape="rect" id="node5" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,161,188,189"/>
<area shape="rect" id="node6" href="$_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="108,238,195,266"/>
<area shape="rect" id="node8" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="212,161,299,189"/>
<area shape="rect" id="node10" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="324,161,395,189"/>
<area shape="rect" id="node12" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="419,161,484,189"/>
</map>

View file

@ -1 +1 @@
733ffa9984cd5bf95cd4137ba4b743af
359d0fb9802ea91c25ab343278928ac0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 30</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 33</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // max size for ACL data</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 33</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // Max size for ACL data</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 36</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div>
@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 48</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 50</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 7 // These three states are only used if it should pair and connect to a Wii controller</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 50</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 7 // These three states are only used if it should pair and connect to a device</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"></span></div>
@ -152,8 +152,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* HCI event flags*/</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 63</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE 0x01</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa05458d2a47122cd62cd0748c7e1e313"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONN_COMPLETE 0x02</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aec17e7d699b1023a0b6f675feddd7d58"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DISCONN_COMPLETE 0x04</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE 0x02</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE 0x04</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE 0x08</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST 0x10</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_READ_BDADDR 0x20</span></div>
@ -161,332 +161,410 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 70</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND 0x80</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 71</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT 0x100</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/*Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9cc765dd92016efe6eaeff535a5193c1"> 74</a></span>&#160;<span class="preprocessor">#define hci_cmd_complete (hci_event_flag &amp; HCI_FLAG_CMD_COMPLETE)</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae43eba7b19fa5c92de5344819b99ec61"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_connect_complete (hci_event_flag &amp; HCI_FLAG_CONN_COMPLETE)</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae67c9cc739a52a8f4a3c28871a07bf1b"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_disconnect_complete (hci_event_flag &amp; HCI_FLAG_DISCONN_COMPLETE)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f97f22fe3bc827916b8adb724b64a7f"> 77</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_remote_name_complete (hci_event_flag &amp; HCI_FLAG_REMOTE_NAME_COMPLETE)</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aeb3a24db49f8158f85b928385e28d83a"> 78</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_incoming_connect_request (hci_event_flag &amp; HCI_FLAG_INCOMING_REQUEST)</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc5a7e103eb1301c12aa35af25cc8293"> 79</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_read_bdaddr_complete (hci_event_flag &amp; HCI_FLAG_READ_BDADDR)</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad205c180970335a666dfe5081b55ade4"> 80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_read_version_complete (hci_event_flag &amp; HCI_FLAG_READ_VERSION)</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a40e9a109cbfeb621a5e94e3802b31af7"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_device_found (hci_event_flag &amp; HCI_FLAG_DEVICE_FOUND)</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11ae66a6caad9105b8e7658189dcfa7b"> 82</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_connect_event (hci_event_flag &amp; HCI_FLAG_CONNECT_EVENT)</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 85</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 86</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 87</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 90</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 94</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 95</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 96</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 97</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 98</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 99</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 101</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 102</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 103</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 105</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 106</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 109</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 110</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 111</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 112</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 113</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 114</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 115</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 116</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 117</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 120</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 121</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SUCCESSFUL 0x00</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"> 123</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 124</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 125</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 126</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 127</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 130</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 131</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="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 133</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0"> 134</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="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 136</a></span>&#160;<span class="preprocessor">#define PAIR 1</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 139</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">Run</a>();</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">Reset</a>();</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;};</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_b_t_d.html"> 158</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_d.html">BTD</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD</a>(<a class="code" href="class_u_s_b.html">USB</a> *p);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 198</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">GetAddress</a>() {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; };</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 206</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">isReady</a>() {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; };</div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e"> 214</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">DEVCLASSOK</a>(uint8_t klass) { <span class="keywordflow">return</span> (klass == <a class="code" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a>); }</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21"> 223</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (vid == <a class="code" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a> &amp;&amp; pid == <a class="code" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a>)</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[1] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[2] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[3] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[4] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[5] != 0x00) { <span class="comment">// Check if Bluetooth address is set</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (vid == <a class="code" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (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> || pid == <a class="code" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>))</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; };</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">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> *ep);</div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da"> 247</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>() {</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; <a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++)</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(btService[i])</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; btService[i]-&gt;<a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; };</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73"> 258</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++) {</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(!btService[i]) {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; btService[i] = pService;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</span></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="keywordflow">return</span> -1; <span class="comment">// ErrorregisterServiceClass</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; };</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">HCI_Command</a>(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">hci_reset</a>();</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">hci_set_local_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">hci_write_scan_disable</a>();</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">hci_accept_connection</a>();</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(uint16_t handle);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>();</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>();</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">hci_write_class_of_device</a>();</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(uint16_t handle, uint8_t* data, uint8_t nbytes, uint8_t channelLow = 0x01, uint8_t channelHigh = 0x00);</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid, uint8_t result);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(uint16_t handle, uint8_t rxid, uint8_t* scid);</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh);</div>
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737"> 396</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a>;</div>
<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 398</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a>;</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 400</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">sdpConnectionClaimed</a>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 402</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">rfcommConnectionClaimed</a>;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 405</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 407</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 410</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[6];</div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 412</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div>
<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 414</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[6];</div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e"> 416</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">remote_name</a>[30];</div>
<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 422</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c"> 425</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>() {</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 428</a></span>&#160; };</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>;</div>
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 432</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a>;</div>
<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 434</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>;</div>
<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 436</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 438</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328"> 441</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>() {</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8"> 444</a></span>&#160; };</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a>;</div>
<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a"> 448</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a>;</div>
<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e"> 450</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd"> 456</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">readPollInterval</a>() {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> pollInterval;</div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 458</a></span>&#160; };</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>;</div>
<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 464</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 466</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[<a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 469</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div>
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 471</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 473</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 476</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 478</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD_EVENT_PIPE</a>;</div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 480</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD_DATAIN_PIPE</a>;</div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 482</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD_DATAOUT_PIPE</a>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/* Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5"> 74</a></span>&#160;<span class="preprocessor">#define hci_check_flag(flag) (hci_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 79</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 82</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 83</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 84</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 85</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 86</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 87</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 90</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 94</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 95</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 96</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 97</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 98</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 99</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">/* Bluetooth states for the different Bluetooth drivers */</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 103</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DONE 1</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">/* Used for HID Control channel */</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 107</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 2</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 108</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 109</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 110</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">/* Used for HID Interrupt channel */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 113</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 6</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 114</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 115</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 116</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">/* Used for SDP channel */</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0"> 119</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 10</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 120</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">/* Used for RFCOMM channel */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 123</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 12</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 124</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 126</a></span>&#160;<span class="preprocessor">#define L2CAP_DISCONNECT_RESPONSE 14 // Used for both SDP and RFCOMM channel</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">/* Bluetooth states used by some drivers */</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670"> 129</a></span>&#160;<span class="preprocessor">#define TURN_ON_LED 17</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 130</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 133</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">/* L2CAP event flags for HID Control channel */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 136</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x00000001</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 137</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x00000002</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 138</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x00000004</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 139</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x00000008</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">/* L2CAP event flags for HID Interrupt channel */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 142</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x00000010</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 143</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x00000020</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 144</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x00000040</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 145</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x00000080</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">/* L2CAP event flags for SDP channel */</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 148</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST 0x00000100</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 149</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS 0x00000200</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 150</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST 0x00000400</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">/* L2CAP event flags for RFCOMM channel */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 153</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST 0x00000800</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 154</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS 0x00001000</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 155</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST 0x00002000</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 157</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE 0x00004000</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8"> 160</a></span>&#160;<span class="preprocessor">#define l2cap_check_flag(flag) (l2cap_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 161</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 162</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 165</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 166</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 167</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 168</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 169</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 170</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 171</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 172</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 173</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 176</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 177</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 180</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 181</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 182</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 183</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 186</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 187</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 189</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0"> 190</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BTD_NUMSERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 192</a></span>&#160;<span class="preprocessor">#define PAIR 1</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">/* acl_handle_ok or it&#39;s a new connection */</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((uint16_t)(x[0]) | (uint16_t)(x[1] &lt;&lt; 8)) == (y | 0x2000U)</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> * Better implementation.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> * o One place for this code, it is reused four times in the source.</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> * Perhaps it is better as a function.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> * o This should be faster since the &amp;&amp; operation can early exit, this means</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> * the shift would only be performed if the first byte matches.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> * o Casting is eliminated.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> * o How does this compare in code size? No difference. It is a free optimization.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372"> 207</a></span>&#160;<span class="preprocessor">#define UHS_ACL_HANDLE_OK(x, y) ((x[0] == (y &amp; 0xff)) &amp;&amp; (x[1] == ((y &gt;&gt; 8) | 0x20)))</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 211</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">Run</a>();</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">Reset</a>();</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</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="l00230"></a><span class="lineno"><a class="line" href="class_b_t_d.html"> 230</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_d.html">BTD</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD</a>(<a class="code" href="class_u_s_b.html">USB</a> *p);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 270</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">GetAddress</a>() {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</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;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 278</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">isReady</a>() {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> bPollEnable;</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;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e"> 287</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> (klass == <a class="code" href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a>);</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="l00298"></a><span class="lineno"><a class="line" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21"> 298</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a> &amp;&amp; pid == <a class="code" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a>)</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[0] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[1] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[2] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[3] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[4] != 0x00 || <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[5] != 0x00) { <span class="comment">// Check if Bluetooth address is set</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(vid == <a class="code" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a> &amp;&amp; (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> || pid == <a class="code" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a>))</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; };</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">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> *ep);</div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da"> 322</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>() {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++)</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span>(btService[i])</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; btService[i]-&gt;<a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</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="l00333"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73"> 333</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(!btService[i]) {</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; btService[i] = pService;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// ErrorregisterServiceClass</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; };</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">HCI_Command</a>(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">hci_reset</a>();</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">hci_set_local_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">hci_write_scan_disable</a>();</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">hci_accept_connection</a>();</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(uint16_t handle);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>();</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>();</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">hci_write_class_of_device</a>();</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(uint16_t handle, uint8_t* data, uint8_t nbytes, uint8_t channelLow = 0x01, uint8_t channelHigh = 0x00);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm);</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid, uint8_t result);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid);</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(uint16_t handle, uint8_t rxid, uint8_t* scid);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh);</div>
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737"> 471</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a>;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 473</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a>;</div>
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 475</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">sdpConnectionClaimed</a>;</div>
<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 477</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">rfcommConnectionClaimed</a>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 480</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>;</div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 482</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">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="l00489"></a><span class="lineno"> 489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordtype">void</span> clearAllVariables(); <span class="comment">// Set all variables, endpoint structs etc. to default values</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a>* btService[<a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>];</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; uint16_t PID, VID; <span class="comment">// PID and VID of device connected</span></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; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; uint8_t pollInterval;</div>
<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 485</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[6];</div>
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 487</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div>
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 489</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[6];</div>
<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e"> 491</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">remote_name</a>[30];</div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 497</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint8_t hci_state; <span class="comment">//current state of bluetooth hci connection</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint16_t hci_counter; <span class="comment">// counter used for bluetooth hci reset loops</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; uint8_t hci_num_reset_loops; <span class="comment">// this value indicate how many times it should read before trying to reset</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; uint16_t hci_event_flag; <span class="comment">// hci flags of received bluetooth events</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; uint8_t inquiry_counter;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; uint8_t hcibuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">//General purpose buffer for hci data</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">//General purpose buffer for l2cap in data</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; uint8_t l2capoutbuf[14]; <span class="comment">//General purpose buffer for l2cap out data</span></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">/* State machines */</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordtype">void</span> HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c"> 500</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>() {</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 503</a></span>&#160; };</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>;</div>
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 507</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a>;</div>
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 509</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>;</div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 511</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 513</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</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; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</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;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_b_t_d_html_a0d82870f7eef8c27c33e6f5989d7a4dd"><div class="ttname"><a href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD::BTD_DATAOUT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAOUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00432">BTD.h:432</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae7066ea743f8907708db945ebef3ad76"><div class="ttname"><a href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">BTD::hci_connect</a></div><div class="ttdeci">void hci_connect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01033">BTD.cpp:1033</a></div></div>
<div class="ttc" id="class_b_t_d_html_a893dd35932821cddda7e482a1904af66"><div class="ttname"><a href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">BTD::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00471">BTD.h:471</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0359c0c158c864c27319810cbd1534f9"><div class="ttname"><a href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">BTD::btdName</a></div><div class="ttdeci">const char * btdName</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00405">BTD.h:405</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae6f942eabd29257bc4896e5f263275b6"><div class="ttname"><a href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">BTD::hci_reset</a></div><div class="ttdeci">void hci_reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00917">BTD.cpp:917</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01222">BTD.cpp:1222</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01209">BTD.cpp:1209</a></div></div>
<div class="ttc" id="class_b_t_d_html_af5e5b085cec1da5c83c75e80e95b3590"><div class="ttname"><a href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">BTD::sdpConnectionClaimed</a></div><div class="ttdeci">bool sdpConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00400">BTD.h:400</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8760371377c1ba08292b6cc71824754e"><div class="ttname"><a href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">BTD::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00214">BTD.h:214</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01275">BTD.cpp:1275</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9e5a34242007b64cd6a226cfd1901e74"><div class="ttname"><a href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">BTD::rfcommConnectionClaimed</a></div><div class="ttdeci">bool rfcommConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00402">BTD.h:402</a></div></div>
<div class="ttc" id="class_b_t_d_html_addaddee110af23a3195ad56f631e69ea"><div class="ttname"><a href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">BTD::hci_version</a></div><div class="ttdeci">uint8_t hci_version</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00422">BTD.h:422</a></div></div>
<div class="ttc" id="class_b_t_d_html_a678f2c995553ce6a9f48f9b59f2f1555"><div class="ttname"><a href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">BTD::hci_inquiry</a></div><div class="ttdeci">void hci_inquiry()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01011">BTD.cpp:1011</a></div></div>
<div class="ttc" id="class_b_t_d_html_a24166c9b308925eeb2f635fae43ca5ec"><div class="ttname"><a href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD::BTD_EVENT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_EVENT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00478">BTD.h:478</a></div></div>
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328"> 516</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>() {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; hci_state = <a class="code" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8"> 519</a></span>&#160; };</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a>;</div>
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a"> 523</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a>;</div>
<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e"> 525</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a>;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd"> 531</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">readPollInterval</a>() {</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> pollInterval;</div>
<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 533</a></span>&#160; };</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="keyword">protected</span>:</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>;</div>
<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 539</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 541</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[<a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 544</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div>
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 546</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div>
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 548</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 551</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a>;</div>
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 553</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD_EVENT_PIPE</a>;</div>
<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 555</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD_DATAIN_PIPE</a>;</div>
<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 557</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD_DATAOUT_PIPE</a>;</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">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="l00564"></a><span class="lineno"> 564</span>&#160;</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordtype">void</span> Initialize(); <span class="comment">// Set all variables, endpoint structs etc. to default values</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a>* btService[<a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>];</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; uint16_t PID, VID; <span class="comment">// PID and VID of device connected</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t pollInterval;</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordtype">bool</span> incomingPS4; <span class="comment">// True if a PS4 controller is connecting</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; uint8_t classOfDevice[3]; <span class="comment">// Class of device of last device</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; uint8_t hci_state; <span class="comment">//current state of bluetooth hci connection</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; uint16_t hci_counter; <span class="comment">// counter used for bluetooth hci reset loops</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; uint16_t hci_num_reset_loops; <span class="comment">// this value indicate how many times it should read before trying to reset</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; uint16_t hci_event_flag; <span class="comment">// hci flags of received bluetooth events</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; uint8_t inquiry_counter;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; uint8_t hcibuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">//General purpose buffer for hci data</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">//General purpose buffer for l2cap in data</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; uint8_t l2capoutbuf[14]; <span class="comment">//General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">void</span> HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;};</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_b_t_d_html_a0d82870f7eef8c27c33e6f5989d7a4dd"><div class="ttname"><a href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD::BTD_DATAOUT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAOUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00557">BTD.h:557</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4dc8f94fe85028f3d54f13dde1e5b4ee"><div class="ttname"><a href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">BTD::incomingWii</a></div><div class="ttdeci">bool incomingWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00507">BTD.h:507</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae7066ea743f8907708db945ebef3ad76"><div class="ttname"><a href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">BTD::hci_connect</a></div><div class="ttdeci">void hci_connect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01045">BTD.cpp:1045</a></div></div>
<div class="ttc" id="class_b_t_d_html_a893dd35932821cddda7e482a1904af66"><div class="ttname"><a href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">BTD::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00546">BTD.h:546</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0359c0c158c864c27319810cbd1534f9"><div class="ttname"><a href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">BTD::btdName</a></div><div class="ttdeci">const char * btdName</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00480">BTD.h:480</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae6f942eabd29257bc4896e5f263275b6"><div class="ttname"><a href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">BTD::hci_reset</a></div><div class="ttdeci">void hci_reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00927">BTD.cpp:927</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01234">BTD.cpp:1234</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01221">BTD.cpp:1221</a></div></div>
<div class="ttc" id="class_b_t_d_html_af5e5b085cec1da5c83c75e80e95b3590"><div class="ttname"><a href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">BTD::sdpConnectionClaimed</a></div><div class="ttdeci">bool sdpConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00475">BTD.h:475</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8760371377c1ba08292b6cc71824754e"><div class="ttname"><a href="class_b_t_d.html#a8760371377c1ba08292b6cc71824754e">BTD::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00287">BTD.h:287</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01287">BTD.cpp:1287</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9e5a34242007b64cd6a226cfd1901e74"><div class="ttname"><a href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">BTD::rfcommConnectionClaimed</a></div><div class="ttdeci">bool rfcommConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00477">BTD.h:477</a></div></div>
<div class="ttc" id="class_b_t_d_html_addaddee110af23a3195ad56f631e69ea"><div class="ttname"><a href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">BTD::hci_version</a></div><div class="ttdeci">uint8_t hci_version</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00497">BTD.h:497</a></div></div>
<div class="ttc" id="class_b_t_d_html_a678f2c995553ce6a9f48f9b59f2f1555"><div class="ttname"><a href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">BTD::hci_inquiry</a></div><div class="ttdeci">void hci_inquiry()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01023">BTD.cpp:1023</a></div></div>
<div class="ttc" id="class_b_t_d_html_a24166c9b308925eeb2f635fae43ca5ec"><div class="ttname"><a href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD::BTD_EVENT_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_EVENT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00553">BTD.h:553</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00027">BTD.h:27</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0c8cc2a2dd2cda3e760b8b4c1a2d169c"><div class="ttname"><a href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">BTD::pairWithWii</a></div><div class="ttdeci">bool pairWithWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00434">BTD.h:434</a></div></div>
<div class="ttc" id="class_b_t_d_html_aff59ab45d917406141ae0c9c79047f08"><div class="ttname"><a href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">BTD::hci_write_scan_disable</a></div><div class="ttdeci">void hci_write_scan_disable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00939">BTD.cpp:939</a></div></div>
<div class="ttc" id="class_b_t_d_html_a23928cd0e5711a2433aec763cfa55773"><div class="ttname"><a href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">BTD::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00318">BTD.cpp:318</a></div></div>
<div class="ttc" id="class_b_t_d_html_aecdd9d00fc9c12bb3677ed213a6687c3"><div class="ttname"><a href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">BTD::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00198">BTD.h:198</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00407">BTD.h:407</a></div></div>
<div class="ttc" id="class_b_t_d_html_a3aea445b2349e99ef057db1a4ffdd9dc"><div class="ttname"><a href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">BTD::motionPlusInside</a></div><div class="ttdeci">bool motionPlusInside</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00436">BTD.h:436</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8767529bd203c549348a38ac9c6682b3"><div class="ttname"><a href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">BTD::hci_remote_name</a></div><div class="ttdeci">void hci_remote_name()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00980">BTD.cpp:980</a></div></div>
<div class="ttc" id="class_b_t_d_html_aede42d995c384c238fd49d728df01e4e"><div class="ttname"><a href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">BTD::remote_name</a></div><div class="ttdeci">uint8_t remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00416">BTD.h:416</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0c8cc2a2dd2cda3e760b8b4c1a2d169c"><div class="ttname"><a href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">BTD::pairWithWii</a></div><div class="ttdeci">bool pairWithWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00509">BTD.h:509</a></div></div>
<div class="ttc" id="class_b_t_d_html_aff59ab45d917406141ae0c9c79047f08"><div class="ttname"><a href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">BTD::hci_write_scan_disable</a></div><div class="ttdeci">void hci_write_scan_disable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00949">BTD.cpp:949</a></div></div>
<div class="ttc" id="class_b_t_d_html_a23928cd0e5711a2433aec763cfa55773"><div class="ttname"><a href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">BTD::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00314">BTD.cpp:314</a></div></div>
<div class="ttc" id="class_b_t_d_html_aecdd9d00fc9c12bb3677ed213a6687c3"><div class="ttname"><a href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">BTD::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00270">BTD.h:270</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="class_b_t_d_html_a3aea445b2349e99ef057db1a4ffdd9dc"><div class="ttname"><a href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">BTD::motionPlusInside</a></div><div class="ttdeci">bool motionPlusInside</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00511">BTD.h:511</a></div></div>
<div class="ttc" id="class_b_t_d_html_a8767529bd203c549348a38ac9c6682b3"><div class="ttname"><a href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">BTD::hci_remote_name</a></div><div class="ttdeci">void hci_remote_name()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00992">BTD.cpp:992</a></div></div>
<div class="ttc" id="class_b_t_d_html_aede42d995c384c238fd49d728df01e4e"><div class="ttname"><a href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">BTD::remote_name</a></div><div class="ttdeci">uint8_t remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00491">BTD.h:491</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00024">BTD.h:24</a></div></div>
<div class="ttc" id="class_b_t_d_html_a5f07597fe15a2b917cce405fe87f2981"><div class="ttname"><a href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD::BTD</a></div><div class="ttdeci">BTD(USB *p)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00027">BTD.cpp:27</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2a9ecb996243e070e70972370e45e4fd"><div class="ttname"><a href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">BTD::readPollInterval</a></div><div class="ttdeci">uint8_t readPollInterval()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00456">BTD.h:456</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2a9ecb996243e070e70972370e45e4fd"><div class="ttname"><a href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">BTD::readPollInterval</a></div><div class="ttdeci">uint8_t readPollInterval()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00531">BTD.h:531</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a1dff7caf251f1d8a5f358b368445cb48"><div class="ttname"><a href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">BluetoothService::Reset</a></div><div class="ttdeci">virtual void Reset()</div></div>
<div class="ttc" id="class_b_t_d_html_a480510bd399ae74a97cd74c8474ef59c"><div class="ttname"><a href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD::BTD_DATAIN_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAIN_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00480">BTD.h:480</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a6747d58951f53389922d80e25b886c"><div class="ttname"><a href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">BTD::hci_set_local_name</a></div><div class="ttdeci">void hci_set_local_name(const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00999">BTD.cpp:999</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7dd7faaec1d3d9a1d8159cc2a4190977"><div class="ttname"><a href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">BTD::hci_write_scan_enable</a></div><div class="ttdeci">void hci_write_scan_enable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00926">BTD.cpp:926</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa87c23bce56a20f2db47c6a40c8eda87"><div class="ttname"><a href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00369">BTD.cpp:369</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01288">BTD.cpp:1288</a></div></div>
<div class="ttc" id="class_b_t_d_html_a480510bd399ae74a97cd74c8474ef59c"><div class="ttname"><a href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD::BTD_DATAIN_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_DATAIN_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00555">BTD.h:555</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a6747d58951f53389922d80e25b886c"><div class="ttname"><a href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">BTD::hci_set_local_name</a></div><div class="ttdeci">void hci_set_local_name(const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01011">BTD.cpp:1011</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7dd7faaec1d3d9a1d8159cc2a4190977"><div class="ttname"><a href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">BTD::hci_write_scan_enable</a></div><div class="ttdeci">void hci_write_scan_enable()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00936">BTD.cpp:936</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa87c23bce56a20f2db47c6a40c8eda87"><div class="ttname"><a href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">BTD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00365">BTD.cpp:365</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01300">BTD.cpp:1300</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afce880b09049d7105f8e68ff36d9ad17"><div class="ttname"><a href="_usb_core_8h.html#afce880b09049d7105f8e68ff36d9ad17">USB_CLASS_WIRELESS_CTRL</a></div><div class="ttdeci">#define USB_CLASS_WIRELESS_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00055">UsbCore.h:55</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa7735da01865bab01b569ee836173737"><div class="ttname"><a href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">BTD::watingForConnection</a></div><div class="ttdeci">bool watingForConnection</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00396">BTD.h:396</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00444">BTD.h:444</a></div></div>
<div class="ttc" id="class_b_t_d_html_a58f78a9a28db81858dcc34a32a2ec82c"><div class="ttname"><a href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">BTD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00464">BTD.h:464</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00448">BTD.h:448</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00450">BTD.h:450</a></div></div>
<div class="ttc" id="class_b_t_d_html_a52d6c7895f6bb01729d01ce28a2f3079"><div class="ttname"><a href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">BTD::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa5976eead215a58553aee683d42405a0"><div class="ttname"><a href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">BTD::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00350">BTD.cpp:350</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa7735da01865bab01b569ee836173737"><div class="ttname"><a href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">BTD::watingForConnection</a></div><div class="ttdeci">bool watingForConnection</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00471">BTD.h:471</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="class_b_t_d_html_a58f78a9a28db81858dcc34a32a2ec82c"><div class="ttname"><a href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">BTD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00539">BTD.h:539</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00523">BTD.h:523</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00525">BTD.h:525</a></div></div>
<div class="ttc" id="class_b_t_d_html_a52d6c7895f6bb01729d01ce28a2f3079"><div class="ttname"><a href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">BTD::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00548">BTD.h:548</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa5976eead215a58553aee683d42405a0"><div class="ttname"><a href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">BTD::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00346">BTD.cpp:346</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aed4a7c4ebf618412176ef19023454fad"><div class="ttname"><a href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad">IOGEAR_GBU521_PID</a></div><div class="ttdeci">#define IOGEAR_GBU521_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00030">BTD.h:30</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00428">BTD.h:428</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7caac80fb6f5f0e794af3644887d88e"><div class="ttname"><a href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">BTD::connectToWii</a></div><div class="ttdeci">bool connectToWii</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00503">BTD.h:503</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4f1808a49e9aca397ba829fac16dc5c3"><div class="ttname"><a href="class_b_t_d.html#a4f1808a49e9aca397ba829fac16dc5c3">BTD::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00048">BTD.cpp:48</a></div></div>
<div class="ttc" id="class_b_t_d_html_a962a5714c225dcb633434f02e3657583"><div class="ttname"><a href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">BTD::wiiUProController</a></div><div class="ttdeci">bool wiiUProController</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00438">BTD.h:438</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00412">BTD.h:412</a></div></div>
<div class="ttc" id="class_b_t_d_html_a48608619d8253972dd132edbb3001c5f"><div class="ttname"><a href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">BTD::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00121">BTD.cpp:121</a></div></div>
<div class="ttc" id="class_b_t_d_html_a962a5714c225dcb633434f02e3657583"><div class="ttname"><a href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">BTD::wiiUProController</a></div><div class="ttdeci">bool wiiUProController</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00513">BTD.h:513</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="class_b_t_d_html_a48608619d8253972dd132edbb3001c5f"><div class="ttname"><a href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">BTD::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00122">BTD.cpp:122</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00441">BTD.h:441</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01133">BTD.cpp:1133</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_b_t_d_html_acb94a629477d85cebd16a9c5ecd4a8b3"><div class="ttname"><a href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">BTD::hci_read_bdaddr</a></div><div class="ttdeci">void hci_read_bdaddr()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00948">BTD.cpp:948</a></div></div>
<div class="ttc" id="class_b_t_d_html_a45ffbc7a40bbb763b0ece907c3dfc9ff"><div class="ttname"><a href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">BTD::hci_inquiry_cancel</a></div><div class="ttdeci">void hci_inquiry_cancel()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01025">BTD.cpp:1025</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1f8e9171a310e50f2c4a3c19066efe5a"><div class="ttname"><a href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">BTD::my_bdaddr</a></div><div class="ttdeci">uint8_t my_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00410">BTD.h:410</a></div></div>
<div class="ttc" id="class_b_t_d_html_a76e201c5b561e3a6d0405894ba5c2e41"><div class="ttname"><a href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00375">BTD.cpp:375</a></div></div>
<div class="ttc" id="class_b_t_d_html_adf5dce0907ea33c919908fea5dc0cf21"><div class="ttname"><a href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">BTD::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00223">BTD.h:223</a></div></div>
<div class="ttc" id="class_b_t_d_html_a49f433ab824f259c3815e180c73bb0ad"><div class="ttname"><a href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD::BTD_CONTROL_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00476">BTD.h:476</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00024">confdescparser.h:24</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00516">BTD.h:516</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01145">BTD.cpp:1145</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_b_t_d_html_acb94a629477d85cebd16a9c5ecd4a8b3"><div class="ttname"><a href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">BTD::hci_read_bdaddr</a></div><div class="ttdeci">void hci_read_bdaddr()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00958">BTD.cpp:958</a></div></div>
<div class="ttc" id="class_b_t_d_html_a45ffbc7a40bbb763b0ece907c3dfc9ff"><div class="ttname"><a href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">BTD::hci_inquiry_cancel</a></div><div class="ttdeci">void hci_inquiry_cancel()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01037">BTD.cpp:1037</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1f8e9171a310e50f2c4a3c19066efe5a"><div class="ttname"><a href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">BTD::my_bdaddr</a></div><div class="ttdeci">uint8_t my_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00485">BTD.h:485</a></div></div>
<div class="ttc" id="class_b_t_d_html_a76e201c5b561e3a6d0405894ba5c2e41"><div class="ttname"><a href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">BTD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00371">BTD.cpp:371</a></div></div>
<div class="ttc" id="class_b_t_d_html_adf5dce0907ea33c919908fea5dc0cf21"><div class="ttname"><a href="class_b_t_d.html#adf5dce0907ea33c919908fea5dc0cf21">BTD::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00298">BTD.h:298</a></div></div>
<div class="ttc" id="class_b_t_d_html_a49f433ab824f259c3815e180c73bb0ad"><div class="ttname"><a href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD::BTD_CONTROL_PIPE</a></div><div class="ttdeci">static const uint8_t BTD_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00551">BTD.h:551</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00023">confdescparser.h:23</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_b_t_d_html_a610183f9ddf04155ef2612d1839af7da"><div class="ttname"><a href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">BTD::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00247">BTD.h:247</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab23f95f12675d7b4505ca6807d379182"><div class="ttname"><a href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">BTD::disc_bdaddr</a></div><div class="ttdeci">uint8_t disc_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00414">BTD.h:414</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00258">BTD.h:258</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00398">BTD.h:398</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91d92fee94e5a4cbca472bb3fd883e3e"><div class="ttname"><a href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">BTD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[BTD_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00466">BTD.h:466</a></div></div>
<div class="ttc" id="class_b_t_d_html_a610183f9ddf04155ef2612d1839af7da"><div class="ttname"><a href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">BTD::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00322">BTD.h:322</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab23f95f12675d7b4505ca6807d379182"><div class="ttname"><a href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">BTD::disc_bdaddr</a></div><div class="ttdeci">uint8_t disc_bdaddr[6]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00489">BTD.h:489</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91d92fee94e5a4cbca472bb3fd883e3e"><div class="ttname"><a href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">BTD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[BTD_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00541">BTD.h:541</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6a28bb0589fbe2da75b238d7568d894d"><div class="ttname"><a href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d">IOGEAR_GBU521_VID</a></div><div class="ttdeci">#define IOGEAR_GBU521_VID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00029">BTD.h:29</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a8dc98310fe481357eaa86c53e49af113"><div class="ttname"><a href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">BluetoothService::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00025">BTD.h:25</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee41c4878894db24e7ad8cd6246595cd"><div class="ttname"><a href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a></div><div class="ttdeci">#define BTD_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00133">BTD.h:133</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee41c4878894db24e7ad8cd6246595cd"><div class="ttname"><a href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a></div><div class="ttdeci">#define BTD_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00189">BTD.h:189</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91f61915c503fe7b861c88f5b3e6733c"><div class="ttname"><a href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">BTD::l2cap_information_response</a></div><div class="ttdeci">void l2cap_information_response(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01301">BTD.cpp:1301</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a17405df60591b909ff1502fb8f3141"><div class="ttname"><a href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">BTD::hci_write_class_of_device</a></div><div class="ttdeci">void hci_write_class_of_device()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01145">BTD.cpp:1145</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01095">BTD.cpp:1095</a></div></div>
<div class="ttc" id="class_b_t_d_html_a91f61915c503fe7b861c88f5b3e6733c"><div class="ttname"><a href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">BTD::l2cap_information_response</a></div><div class="ttdeci">void l2cap_information_response(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01313">BTD.cpp:1313</a></div></div>
<div class="ttc" id="class_b_t_d_html_a9a17405df60591b909ff1502fb8f3141"><div class="ttname"><a href="class_b_t_d.html#a9a17405df60591b909ff1502fb8f3141">BTD::hci_write_class_of_device</a></div><div class="ttdeci">void hci_write_class_of_device()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01157">BTD.cpp:1157</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7114d2cb62aa413e5ecb25c45c76832b"><div class="ttname"><a href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">BTD::hci_pin_code_negative_request_reply</a></div><div class="ttdeci">void hci_pin_code_negative_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01107">BTD.cpp:1107</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2c060a7be42c5c4c57990cacec0b45f5"><div class="ttname"><a href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5">HCI_CHECK_DEVICE_SERVICE</a></div><div class="ttdeci">#define HCI_CHECK_DEVICE_SERVICE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00048">BTD.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a680692ff13cb37eb81ddbb74bc9e0383"><div class="ttname"><a href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">BluetoothService::Run</a></div><div class="ttdeci">virtual void Run()</div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00469">BTD.h:469</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01109">BTD.cpp:1109</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00425">BTD.h:425</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1b2440748bdaaeb552a05b0f0902f5d8"><div class="ttname"><a href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">BTD::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00206">BTD.h:206</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01181">BTD.cpp:1181</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2222709eed4c8af293e881ea36f599b0"><div class="ttname"><a href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a></div><div class="ttdeci">#define BTD_NUMSERVICES</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00134">BTD.h:134</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01256">BTD.cpp:1256</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01239">BTD.cpp:1239</a></div></div>
<div class="ttc" id="class_b_t_d_html_a70047b0f624c3f0ef29f8b76b8a34938"><div class="ttname"><a href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">BTD::hci_pin_code_request_reply</a></div><div class="ttdeci">void hci_pin_code_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01059">BTD.cpp:1059</a></div></div>
<div class="ttc" id="class_b_t_d_html_a10c34527ae90e95791ac48ac7d1154a2"><div class="ttname"><a href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">BTD::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00544">BTD.h:544</a></div></div>
<div class="ttc" id="class_b_t_d_html_af4d28b9c1a3b9688a1871610caee2cfc"><div class="ttname"><a href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">BTD::hci_link_key_request_negative_reply</a></div><div class="ttdeci">void hci_link_key_request_negative_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01121">BTD.cpp:1121</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00500">BTD.h:500</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1b2440748bdaaeb552a05b0f0902f5d8"><div class="ttname"><a href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">BTD::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00278">BTD.h:278</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01193">BTD.cpp:1193</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2222709eed4c8af293e881ea36f599b0"><div class="ttname"><a href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a></div><div class="ttdeci">#define BTD_NUMSERVICES</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00190">BTD.h:190</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01268">BTD.cpp:1268</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01251">BTD.cpp:1251</a></div></div>
<div class="ttc" id="class_b_t_d_html_a70047b0f624c3f0ef29f8b76b8a34938"><div class="ttname"><a href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">BTD::hci_pin_code_request_reply</a></div><div class="ttdeci">void hci_pin_code_request_reply()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01071">BTD.cpp:1071</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a66ee2f09c6087b82e3920c3d652a99b2"><div class="ttname"><a href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">BluetoothService::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div></div>
<div class="ttc" id="class_b_t_d_html_a4bcd1d622a6455ee3d0cccc4408700a1"><div class="ttname"><a href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">BTD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00458">BTD.h:458</a></div></div>
<div class="ttc" id="class_b_t_d_html_addd07c18c725a324a05792a83026d36d"><div class="ttname"><a href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">BTD::hci_authentication_request</a></div><div class="ttdeci">void hci_authentication_request()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01123">BTD.cpp:1123</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae2ba215b6942f4131e4c5fdef2771e22"><div class="ttname"><a href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">BTD::hci_read_local_version_information</a></div><div class="ttdeci">void hci_read_local_version_information()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00956">BTD.cpp:956</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1cb07a155c69bb1fcf45ae030b8947ec"><div class="ttname"><a href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">BTD::hci_accept_connection</a></div><div class="ttdeci">void hci_accept_connection()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00964">BTD.cpp:964</a></div></div>
<div class="ttc" id="class_b_t_d_html_af11ad71d20783d46fe42dd405d10dfda"><div class="ttname"><a href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">BTD::HCI_Command</a></div><div class="ttdeci">void HCI_Command(uint8_t *data, uint16_t nbytes)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00912">BTD.cpp:912</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4bcd1d622a6455ee3d0cccc4408700a1"><div class="ttname"><a href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">BTD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00533">BTD.h:533</a></div></div>
<div class="ttc" id="class_b_t_d_html_addd07c18c725a324a05792a83026d36d"><div class="ttname"><a href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">BTD::hci_authentication_request</a></div><div class="ttdeci">void hci_authentication_request()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01135">BTD.cpp:1135</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae2ba215b6942f4131e4c5fdef2771e22"><div class="ttname"><a href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">BTD::hci_read_local_version_information</a></div><div class="ttdeci">void hci_read_local_version_information()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00967">BTD.cpp:967</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1cb07a155c69bb1fcf45ae030b8947ec"><div class="ttname"><a href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">BTD::hci_accept_connection</a></div><div class="ttdeci">void hci_accept_connection()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00976">BTD.cpp:976</a></div></div>
<div class="ttc" id="class_b_t_d_html_af11ad71d20783d46fe42dd405d10dfda"><div class="ttname"><a href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">BTD::HCI_Command</a></div><div class="ttdeci">void HCI_Command(uint8_t *data, uint16_t nbytes)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00922">BTD.cpp:922</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: BTHID.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -95,7 +95,7 @@ Include dependency graph for BTHID.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8cpp__incl.png" border="0" usemap="#_b_t_h_i_d_8cpp" alt=""/></div>
<map name="_b_t_h_i_d_8cpp" id="_b_t_h_i_d_8cpp">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="49,83,121,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="17,238,76,266"/><area shape="rect" id="node5" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="21,161,149,189"/><area shape="rect" id="node6" href="hidboot_8h.html" title="hidboot.h" alt="" coords="174,161,249,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="49,315,105,343"/><area shape="rect" id="node7" href="hid_8h.html" title="hid.h" alt="" coords="171,238,220,266"/><area shape="rect" id="node8" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="146,315,245,343"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,83,109,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/></map>
</div>
</div>
<p><a href="_b_t_h_i_d_8cpp_source.html">Go to the source code of this file.</a></p>
@ -104,7 +104,7 @@ Include dependency graph for BTHID.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

View file

@ -1,9 +1,8 @@
<map id="BTHID.cpp" name="BTHID.cpp">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="49,83,121,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="17,238,76,266"/>
<area shape="rect" id="node5" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="21,161,149,189"/>
<area shape="rect" id="node6" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="174,161,249,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="49,315,105,343"/>
<area shape="rect" id="node7" href="$hid_8h.html" title="hid.h" alt="" coords="171,238,220,266"/>
<area shape="rect" id="node8" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="146,315,245,343"/>
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="37,83,109,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/>
</map>

View file

@ -1 +1 @@
72bf7a4ac7922d4cdc4dd2d2a3e314c4
3325b0ff5c79ca7ff5822cbf27f33902

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 17 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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: BTHID.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,334 +111,334 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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 HID device</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="line" href="class_b_t_h_i_d.html#ab81dcc90a64615b7ae38083dd8188505"> 23</a></span>&#160;<a class="code" href="class_b_t_h_i_d.html#ab81dcc90a64615b7ae38083dd8188505">BTHID::BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> pair, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin) :</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54"> 23</a></span>&#160;<a class="code" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> pair, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin) :</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;pBtd(p), <span class="comment">// pointer to USB class instance - mandatory</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;protocolMode(<a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>)</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="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a">epMUL</a>; i++)</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; pRptParser[i] = NULL;</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="keywordflow">if</span> (pBtd)</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;protocolMode(<a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>; i++)</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; pRptParser[i] = NULL;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a> = pin;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span> (pair)</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>= pin;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">/* Set device cid for the control and intterrupt channelse - LSB */</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; control_dcid[0] = 0x70; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; control_dcid[1] = 0x00;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; interrupt_dcid[0] = 0x71; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; interrupt_dcid[1] = 0x00;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">/* Set device cid for the control and intterrupt channelse - LSB */</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; control_dcid[0] = 0x70; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; control_dcid[1] = 0x00;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; interrupt_dcid[0] = 0x71; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; interrupt_dcid[1] = 0x00;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</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;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e"> 47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a>() {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; activeConnection = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0"> 54</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a>() { <span class="comment">// Use this void to disconnect any of the controllers</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// First the HID interrupt channel has to be disconnected, then the HID control channel and finally the HCI connection</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, 0x0A, interrupt_scid, interrupt_dcid);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54"> 61</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a>(uint8_t* l2capinbuf) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span> (!pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</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="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</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="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</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="l00078"></a><span class="lineno"> 78</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e"> 44</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a>() {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; activeConnection = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0"> 51</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a>() { <span class="comment">// Use this void to disconnect the device</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// First the HID interrupt channel has to be disconnected, then the HID control channel and finally the HCI connection</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, ++identifier, interrupt_scid, interrupt_dcid);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54"> 58</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a>(uint8_t* l2capinbuf) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(!pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a>) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">incomingHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>; <span class="comment">// Claim that the incoming connection belongs to this service</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; hci_handle = pBtd-&gt;<a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>; <span class="comment">// Store the HCI Handle for the connection</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</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; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">//if((l2capinbuf[0] | (uint16_t)l2capinbuf[1] &lt;&lt; 8) == (hci_handle | 0x2000U)) { // acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a>(l2capinbuf, hci_handle)) { <span class="comment">// acl_handle_ok or it&#39;s a new connection</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[6] | (l2capinbuf[7] &lt;&lt; 8)) == 0x0001U) { <span class="comment">// l2cap_control - Channel ID for ACL-U</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</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="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Command Rejected - Reason: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</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="l00078"></a><span class="lineno"> 78</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</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="l00080"></a><span class="lineno"> 80</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[17], 0x80);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[16], 0x80);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</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="l00086"></a><span class="lineno"> 86</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</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="l00088"></a><span class="lineno"> 88</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; control_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; control_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[14] == interrupt_dcid[0] &amp;&amp; l2capinbuf[15] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; interrupt_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; interrupt_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; } <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="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</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="l00109"></a><span class="lineno"> 109</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</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="l00111"></a><span class="lineno"> 111</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</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="l00115"></a><span class="lineno"> 115</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</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="l00117"></a><span class="lineno"> 117</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> ((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; control_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; control_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>) {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; interrupt_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; interrupt_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>;</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="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a>) {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> ((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</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="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a>) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</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="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], control_scid);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], interrupt_scid);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</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="l00151"></a><span class="lineno"> 151</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="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</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="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</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="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a>) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span> (l2capinbuf[12] == control_scid[0] &amp;&amp; l2capinbuf[13] == control_scid[1]) {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Control Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[12] == interrupt_scid[0] &amp;&amp; l2capinbuf[13] == interrupt_scid[1]) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Interrupt Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; l2cap_event_flag |= <a class="code" href="_b_t_h_i_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>;</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; }</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Unknown Signaling Command: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\n\r\nL2CAP Interrupt: &quot;), 0x80);</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</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#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="message_8h.html#ab5d8177365493b21dbc092f6557bd508">Notifyc</a>(<span class="charliteral">&#39; &#39;</span>, 0x80);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (l2capinbuf[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">switch</span> (l2capinbuf[9]) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">case</span> 0x01: <span class="comment">// Keyboard events</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span> (pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]) {</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>((<a class="code" href="class_h_i_d.html">HID</a>*)<span class="keyword">this</span>, 0, (uint8_t) length, &amp;l2capinbuf[10]);</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; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> 0x02: <span class="comment">// Mouse events</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> 0x1A:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]) {</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>((<a class="code" href="class_h_i_d.html">HID</a>*)<span class="keyword">this</span>, 0, (uint8_t) length, &amp;l2capinbuf[10]);</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="keywordflow">break</span>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> 0x03:</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nChange mode event: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[11], 0x80);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a>) {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) &amp;&amp; ((l2capinbuf[18] | (l2capinbuf[19] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>)) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[14] == control_dcid[0] &amp;&amp; l2capinbuf[15] == control_dcid[1]) {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; control_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; control_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[14] == interrupt_dcid[0] &amp;&amp; l2capinbuf[15] == interrupt_dcid[1]) {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Connection Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; interrupt_scid[0] = l2capinbuf[12];</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; interrupt_scid[1] = l2capinbuf[13];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <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="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Connection Request - PSM: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[13], 0x80);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</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="l00109"></a><span class="lineno"> 109</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[12], 0x80);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</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="l00111"></a><span class="lineno"> 111</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[15], 0x80);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[14], 0x80);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</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="l00115"></a><span class="lineno"> 115</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; control_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; control_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((l2capinbuf[12] | (l2capinbuf[13] &lt;&lt; 8)) == <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; interrupt_scid[0] = l2capinbuf[14];</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; interrupt_scid[1] = l2capinbuf[15];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a>) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>((l2capinbuf[16] | (l2capinbuf[17] &lt;&lt; 8)) == 0x0000) { <span class="comment">// Success</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</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="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</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="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Complete&quot;), 0x80);</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a>) {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</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="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Control Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], control_scid);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <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="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nHID Interrupt Configuration Request&quot;), 0x80);</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(hci_handle, l2capinbuf[9], interrupt_scid);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</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="l00149"></a><span class="lineno"> 149</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="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</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="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</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="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnect Request: Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"></span> identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[8] == <a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a>) {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(l2capinbuf[12] == control_scid[0] &amp;&amp; l2capinbuf[13] == control_scid[1]) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Control Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[12] == interrupt_scid[0] &amp;&amp; l2capinbuf[13] == interrupt_scid[1]) {</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nDisconnect Response: Interrupt Channel&quot;), 0x80);</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; identifier = l2capinbuf[9];</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</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="l00179"></a><span class="lineno"> 179</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[8], 0x80);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == interrupt_dcid[0] &amp;&amp; l2capinbuf[7] == interrupt_dcid[1]) { <span class="comment">// l2cap_interrupt</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Interrupt: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 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; &quot;</span>), 0x80);</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;<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[8] == 0xA1) { <span class="comment">// HID_THDR_DATA_INPUT</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">switch</span>(l2capinbuf[9]) {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> 0x01: <span class="comment">// Keyboard events</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]) {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">break</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">case</span> 0x02: <span class="comment">// Mouse events</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span>(pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]) {</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint16_t length = ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>]-&gt;<a class="code" href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">Parse</a>(reinterpret_cast&lt;HID *&gt;(<span class="keyword">this</span>), 0, (uint8_t)(length - 2), &amp;l2capinbuf[10]); <span class="comment">// Use reinterpret_cast again to extract the instance</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnknown Report type: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[9], 0x80);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(l2capinbuf[6] == control_dcid[0] &amp;&amp; l2capinbuf[7] == control_dcid[1]) { <span class="comment">// l2cap_control</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nL2CAP Control: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</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;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[6], 0x80);</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; <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="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="message_8h.html#ab5d8177365493b21dbc092f6557bd508">Notifyc</a>(<span class="charliteral">&#39; &#39;</span>, 0x80);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"></span> L2CAP_task();</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;}</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="keywordtype">void</span> BTHID::L2CAP_task() {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">switch</span> (l2cap_state) {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">/* These states are used if the HID device is the host */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>) {</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"></span> l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</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="keywordflow">break</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">case</span> <a class="code" href="_b_t_h_i_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</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="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"></span> 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="l00261"></a><span class="lineno"> 261</span>&#160; delay(1);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; identifier++;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; delay(1);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</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">break</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="comment">/* These states are used if the Arduino is the host */</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#acaec1ddc53593c80dc625c1f361e3a24">l2cap_connected_control_flag</a>) {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</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> identifier++;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</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="keywordflow">break</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">case</span> <a class="code" href="_b_t_h_i_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>) {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</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> identifier++;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc">l2cap_connected_interrupt_flag</a>) {</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</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; <span class="keywordflow">break</span>;</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="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_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="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;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<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> pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; setProtocol();</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nUnsupported L2CAP Data - Channel ID: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[7], 0x80);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[6], 0x80);</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; <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="l00230"></a><span class="lineno"> 230</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="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; ((uint16_t)l2capinbuf[5] &lt;&lt; 8 | l2capinbuf[4]); i++) {</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; D_PrintHex&lt;uint8_t &gt; (l2capinbuf[i + 8], 0x80);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</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="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"></span> L2CAP_task();</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keywordtype">void</span> BTHID::L2CAP_task() {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">/* These states are used if the HID device is the host */</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>:</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Successfully Configured&quot;</span>), 0x80);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div>
<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="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>:</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)) {</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Interrupt Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a>);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; delay(1);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(hci_handle, identifier, interrupt_dcid, interrupt_scid, <a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a>);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; identifier++;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; delay(1);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
<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;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">/* These states are used if the Arduino is the host */</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)) {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Control Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)) {</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; setProtocol(); <span class="comment">// Set protocol before establishing HID interrupt channel</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; delay(1); <span class="comment">// Short delay between commands - just to be sure</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, interrupt_dcid, <a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a>);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div>
<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="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>:</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)) {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSend HID Interrupt Config Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, interrupt_scid);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">break</span>;</div>
<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; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>:</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)) { <span class="comment">// Now the HID channels is established</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Channels Established&quot;</span>), 0x80);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">pairWithHIDDevice</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; onInit();</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">break</span>;</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"> 319</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>:</div>
<div class="line"><a name="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;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>) {</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>:</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)) {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Interrupt Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"></span> identifier++;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(hci_handle, identifier, control_scid, control_dcid);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>) {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>:</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nDisconnected Control Channel&quot;</span>), 0x80);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"></span> pBtd-&gt;<a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(hci_handle);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; hci_handle = -1; <span class="comment">// Reset handle</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc"> 347</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a>() {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">switch</span> (l2cap_state) {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">switch</span>(l2cap_state) {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>:</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(pBtd-&gt;<a class="code" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">connectToHIDDevice</a> &amp;&amp; !pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> &amp;&amp; !<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a> &amp;&amp; !activeConnection) {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; activeConnection = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
@ -448,8 +448,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l2cap_event_flag = 0; <span class="comment">// Reset flags</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; identifier = 0;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(hci_handle, identifier, control_dcid, <a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a>);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="_b_t_h_i_d_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>) {</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a>(<a class="code" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)) {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nHID Control Incoming Connection Request&quot;</span>), 0x80);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#endif</span></div>
@ -459,7 +459,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; identifier++;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; delay(1);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(hci_handle, identifier, control_scid);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; l2cap_state = <a class="code" href="_b_t_h_i_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; l2cap_state = <a class="code" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
@ -467,86 +467,100 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="comment">/************************************************************/</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keywordtype">void</span> BTHID::setProtocol() {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; uint8_t command = 0x70 | protocolMode; <span class="comment">// Set Protocol, see HID specs page 33</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, &amp;command, 1, control_scid[0], control_scid[1]);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;}</div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01222">BTD.cpp:1222</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1be7a56cdddcdb7dedf16d4dee381e93"><div class="ttname"><a href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a></div><div class="ttdeci">#define SUCCESSFUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00121">BTD.h:121</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00061">BTHID.cpp:61</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01209">BTD.cpp:1209</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_aaaf733ee2c84bd8df4d24f2ae1f3b378"><div class="ttname"><a href="_b_t_h_i_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00034">BTHID.h:34</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01275">BTD.cpp:1275</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a667178a4486c4dee88e052b3562362cd"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a></div><div class="ttdeci">#define l2cap_disconnect_response_interrupt_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00059">BTHID.h:59</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00103">BTHID.h:103</a></div></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;<span class="comment">/************************************************************/</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keywordtype">void</span> BTHID::setProtocol() {</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nSet protocol mode: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; D_PrintHex&lt;uint8_t &gt; (protocolMode, 0x80);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (protocolMode != <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a> &amp;&amp; protocolMode != <a class="code" href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a>) {</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nNot a valid protocol mode. Using Boot protocol instead.&quot;</span>), 0x80);</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"></span> protocolMode = <a class="code" href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a>; <span class="comment">// Use Boot Protocol by default</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; uint8_t command = 0x70 | protocolMode; <span class="comment">// Set Protocol, see Bluetooth HID specs page 33</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, &amp;command, 1, control_scid[0], control_scid[1]);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310"> 396</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a>(uint8_t data) {</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; uint8_t buf[3];</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; buf[0] = 0xA2; <span class="comment">// HID BT DATA_request (0xA0) | Report Type (Output 0x02)</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; buf[1] = 0x01; <span class="comment">// Report ID</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; buf[2] = data;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(hci_handle, buf, 3, interrupt_scid[0], interrupt_scid[1]);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div>
<div class="ttc" id="_b_t_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a3aa6623f7fa8839754d3deefa6d60372"><div class="ttname"><a href="_b_t_d_8h.html#a3aa6623f7fa8839754d3deefa6d60372">UHS_ACL_HANDLE_OK</a></div><div class="ttdeci">#define UHS_ACL_HANDLE_OK(x, y)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00207">BTD.h:207</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00143">BTD.h:143</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a73e3a81d9a8850075fd10933acc5a035"><div class="ttname"><a href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00115">BTD.h:115</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac7aa7fd7a8a34a6c9e420e3cb114737b"><div class="ttname"><a href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_SETUP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00113">BTD.h:113</a></div></div>
<div class="ttc" id="class_b_t_d_html_a7d34c62b1d561679dea5cd27356b38a7"><div class="ttname"><a href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">BTD::l2cap_connection_response</a></div><div class="ttdeci">void l2cap_connection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid, uint8_t result)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01234">BTD.cpp:1234</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1be7a56cdddcdb7dedf16d4dee381e93"><div class="ttname"><a href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93">SUCCESSFUL</a></div><div class="ttdeci">#define SUCCESSFUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00177">BTD.h:177</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00058">BTHID.cpp:58</a></div></div>
<div class="ttc" id="class_b_t_d_html_a55cf412a2053972a353b1ab964ca9d3e"><div class="ttname"><a href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">BTD::l2cap_connection_request</a></div><div class="ttdeci">void l2cap_connection_request(uint16_t handle, uint8_t rxid, uint8_t *scid, uint16_t psm)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01221">BTD.cpp:1221</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a015f3b25bd7a2908c84b973dec453f45"><div class="ttname"><a href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00142">BTD.h:142</a></div></div>
<div class="ttc" id="hid_8h_html_a5153bc7974af5cfead6daea72b8b2f6a"><div class="ttname"><a href="hid_8h.html#a5153bc7974af5cfead6daea72b8b2f6a">HID_RPT_PROTOCOL</a></div><div class="ttdeci">#define HID_RPT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00083">hid.h:83</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_d_html_ac7053ef7ac690be3afbbdd985b163f10"><div class="ttname"><a href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">BTD::l2cap_disconnection_request</a></div><div class="ttdeci">void l2cap_disconnection_request(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01287">BTD.cpp:1287</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00093">BTHID.h:93</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00407">BTD.h:407</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00047">BTHID.cpp:47</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a2b3cdcd3124251a40ce825da0d8dcb6f"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00047">BTHID.h:47</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a728c7d92dd341dcc1b8f4bf95bb4826d"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a></div><div class="ttdeci">#define l2cap_connection_request_control_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00060">BTHID.h:60</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01288">BTD.cpp:1288</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_aad823543553cc7500ac49d7479eb858f"><div class="ttname"><a href="_b_t_h_i_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_INTERRUPT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00045">BTHID.h:45</a></div></div>
<div class="ttc" id="class_b_t_d_html_a215cb939c01ed3ff56db37841224546c"><div class="ttname"><a href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">BTD::btdPin</a></div><div class="ttdeci">const char * btdPin</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00482">BTD.h:482</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00104">BTD.h:104</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00109">BTD.h:109</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00103">BTD.h:103</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aaaf733ee2c84bd8df4d24f2ae1f3b378"><div class="ttname"><a href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00108">BTD.h:108</a></div></div>
<div class="ttc" id="class_b_t_d_html_a29d176d9194e5c92fbe54791fc245407"><div class="ttname"><a href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">BTD::l2cap_disconnection_response</a></div><div class="ttdeci">void l2cap_disconnection_response(uint16_t handle, uint8_t rxid, uint8_t *dcid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01300">BTD.cpp:1300</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a15cc1db556ad9a4ec6144ca8a42f8919"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a></div><div class="ttdeci">#define L2CAP_WAIT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00444">BTD.h:444</a></div></div>
<div class="ttc" id="hid_8h_html_a41258c5dd55e5ae0378ec8ded892ce37"><div class="ttname"><a href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a></div><div class="ttdeci">#define HID_BOOT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00079">hid.h:79</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_h_i_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00049">BTHID.h:49</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a9fa7bceb44bbdff3229fd431627b9868"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a></div><div class="ttdeci">#define l2cap_connection_request_interrupt_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00061">BTHID.h:61</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1465673868452307bcdab8e201430c27"><div class="ttname"><a href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a></div><div class="ttdeci">#define HID_CTRL_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00126">BTD.h:126</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00448">BTD.h:448</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00450">BTD.h:450</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ab569b2085ad29f41d1da9c0ed352bd65"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00040">BTHID.h:40</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a0b48c93189cf128c1ef13ce86b4fa6be"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a></div><div class="ttdeci">#define MOUSE_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00064">BTHID.h:64</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00412">BTD.h:412</a></div></div>
<div class="ttc" id="message_8h_html_ab5d8177365493b21dbc092f6557bd508"><div class="ttname"><a href="message_8h.html#ab5d8177365493b21dbc092f6557bd508">Notifyc</a></div><div class="ttdeci">#define Notifyc(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00046">message.h:46</a></div></div>
<div class="ttc" id="class_b_t_d_html_af40b8d52df99192880c8a13443b6c6d8"><div class="ttname"><a href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8">BTD::connectToHIDDevice</a></div><div class="ttdeci">bool connectToHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00519">BTD.h:519</a></div></div>
<div class="ttc" id="hid_8h_html_a41258c5dd55e5ae0378ec8ded892ce37"><div class="ttname"><a href="hid_8h.html#a41258c5dd55e5ae0378ec8ded892ce37">HID_BOOT_PROTOCOL</a></div><div class="ttdeci">#define HID_BOOT_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00082">hid.h:82</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a68bcdd68c269cd7970d5271a00bbe5fe"><div class="ttname"><a href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00107">BTD.h:107</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a1465673868452307bcdab8e201430c27"><div class="ttname"><a href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27">HID_CTRL_PSM</a></div><div class="ttdeci">#define HID_CTRL_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00182">BTD.h:182</a></div></div>
<div class="ttc" id="class_b_t_d_html_a685d6371fb0c950ff6bad4510a8cc85a"><div class="ttname"><a href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a">BTD::incomingHIDDevice</a></div><div class="ttdeci">bool incomingHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00523">BTD.h:523</a></div></div>
<div class="ttc" id="class_b_t_d_html_a2aa418d820fb6b877ea079e0436a518e"><div class="ttname"><a href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e">BTD::pairWithHIDDevice</a></div><div class="ttdeci">bool pairWithHIDDevice</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00525">BTD.h:525</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a0b48c93189cf128c1ef13ce86b4fa6be"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a></div><div class="ttdeci">#define MOUSE_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00025">BTHID.h:25</a></div></div>
<div class="ttc" id="class_b_t_d_html_aa3bb6c692701cb33dfad1ea4d68b6f98"><div class="ttname"><a href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">BTD::hci_handle</a></div><div class="ttdeci">uint16_t hci_handle</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00487">BTD.h:487</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html"><div class="ttname"><a href="_b_t_h_i_d_8h.html">BTHID.h</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01133">BTD.cpp:1133</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00054">BTHID.cpp:54</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a68bcdd68c269cd7970d5271a00bbe5fe"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CONTROL_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00033">BTHID.h:33</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae4da52ca67e1f8b977199b24e8f3a400"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a></div><div class="ttdeci">#define L2CAP_DONE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00038">BTHID.h:38</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ac7aa7fd7a8a34a6c9e420e3cb114737b"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_SETUP</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00030">BTHID.h:30</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a7f0cab74308e812106252c53b18c0391"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a></div><div class="ttdeci">#define l2cap_disconnect_response_control_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00058">BTHID.h:58</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a015f3b25bd7a2908c84b973dec453f45"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00051">BTHID.h:51</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ab3dce23ba2c4c289645510dc8f51b65a"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a">epMUL</a></div><div class="ttdeci">#define epMUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00065">BTHID.h:65</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00050">BTHID.h:50</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00112">BTD.h:112</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00114">BTD.h:114</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00127">BTD.h:127</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_af0b913a7e9e54b1f6ab95d82bd36f954"><div class="ttname"><a href="_b_t_h_i_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00035">BTHID.h:35</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00258">BTD.h:258</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00398">BTD.h:398</a></div></div>
<div class="ttc" id="class_b_t_d_html_a1bea5dd793a2f47006b4a7642efc9e56"><div class="ttname"><a href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">BTD::hci_disconnect</a></div><div class="ttdeci">void hci_disconnect(uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01145">BTD.cpp:1145</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_acc096a05301f3cbdece4ad372cc149c3"><div class="ttname"><a href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00145">BTD.h:145</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00051">BTHID.cpp:51</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5d120280be8d502fa0b74d46aa32d3a8"><div class="ttname"><a href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8">l2cap_check_flag</a></div><div class="ttdeci">#define l2cap_check_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00160">BTD.h:160</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a48bcd73461d736d0ef889e1fe6e36f69"><div class="ttname"><a href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69">L2CAP_CMD_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00168">BTD.h:168</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a2e5a9c283f0912833f3e0418d3feadd7"><div class="ttname"><a href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_CONTROL_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00138">BTD.h:138</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a398676a2e9a2351a5a52afdddf4b660b"><div class="ttname"><a href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b">L2CAP_CMD_DISCONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00170">BTD.h:170</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00110">BTD.h:110</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a969a1ee84797f3ee5006c41f67373f96"><div class="ttname"><a href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a></div><div class="ttdeci">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00136">BTD.h:136</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c5ac96db74d61d4a5a5d945a400e7da"><div class="ttname"><a href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da">HID_INTR_PSM</a></div><div class="ttdeci">#define HID_INTR_PSM</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00183">BTD.h:183</a></div></div>
<div class="ttc" id="class_b_t_d_html_a4adfc7e51ad3b3c03e7c37d1af159e73"><div class="ttname"><a href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">BTD::registerServiceClass</a></div><div class="ttdeci">int8_t registerServiceClass(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00333">BTD.h:333</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0f1c28a03bcbe62cc7c083f97ea27594"><div class="ttname"><a href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">BTD::l2capConnectionClaimed</a></div><div class="ttdeci">bool l2capConnectionClaimed</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00473">BTD.h:473</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html_ad2837f3d78c7ac3f1c2b3a4815420d97"><div class="ttname"><a href="class_h_i_d_report_parser.html#ad2837f3d78c7ac3f1c2b3a4815420d97">HIDReportParser::Parse</a></div><div class="ttdeci">virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)=0</div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00115">BTD.h:115</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aef7b306479de265d725dbe5816a8227b"><div class="ttname"><a href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00111">BTD.h:111</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ac72a2b645fafc5bdbd85c1f59cc937cc"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc">l2cap_connected_interrupt_flag</a></div><div class="ttdeci">#define l2cap_connected_interrupt_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00055">BTHID.h:55</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8151b1fe5d940a5a7a34f43a8b8ce434"><div class="ttname"><a href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00113">BTD.h:113</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a2e5a9c283f0912833f3e0418d3feadd7"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_CONTROL_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00044">BTHID.h:44</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a39a58b19fb4ef26cf503ed57a43570a4"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a></div><div class="ttdeci">#define l2cap_config_success_control_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00056">BTHID.h:56</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a9b3e87e1f460bc011e69f5e53e79c104"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a></div><div class="ttdeci">#define l2cap_config_success_interrupt_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00057">BTHID.h:57</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a699c5d6eb13133dce9504391bc610f3e"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a></div><div class="ttdeci">#define KEYBOARD_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00063">BTHID.h:63</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_acaec1ddc53593c80dc625c1f361e3a24"><div class="ttname"><a href="_b_t_h_i_d_8h.html#acaec1ddc53593c80dc625c1f361e3a24">l2cap_connected_control_flag</a></div><div class="ttdeci">#define l2cap_connected_control_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00054">BTHID.h:54</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_abac08b5b24a1cd2b12517cd9aa6c616b"><div class="ttname"><a href="_b_t_h_i_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab81dcc90a64615b7ae38083dd8188505"><div class="ttname"><a href="class_b_t_h_i_d.html#ab81dcc90a64615b7ae38083dd8188505">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;1234&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01181">BTD.cpp:1181</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01256">BTD.cpp:1256</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9960d0d5ae92fc92c70bbb84c2a5c0cc"><div class="ttname"><a href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a></div><div class="ttdeci">#define PENDING</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00120">BTD.h:120</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01239">BTD.cpp:1239</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a73e3a81d9a8850075fd10933acc5a035"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONFIG_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00037">BTHID.h:37</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00110">BTD.h:110</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a9b5140e7ca5941e5535c575255ffc1cc"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_CONTROL_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00041">BTHID.h:41</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a27057737ae0b2246442511c01eeed192"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a></div><div class="ttdeci">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00048">BTHID.h:48</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00109">BTHID.h:109</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00046">BTHID.h:46</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6ffcd72787c86f248192eb06a3fe18cb"><div class="ttname"><a href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a></div><div class="ttdeci">#define L2CAP_CMD_COMMAND_REJECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00109">BTD.h:109</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a4c64a41200714e457b397496183dc0e4"><div class="ttname"><a href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4">L2CAP_CMD_DISCONNECT_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_DISCONNECT_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00171">BTD.h:171</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aef7b306479de265d725dbe5816a8227b"><div class="ttname"><a href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b">L2CAP_CMD_CONNECTION_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00167">BTD.h:167</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a8151b1fe5d940a5a7a34f43a8b8ce434"><div class="ttname"><a href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434">L2CAP_CMD_CONFIG_RESPONSE</a></div><div class="ttdeci">#define L2CAP_CMD_CONFIG_RESPONSE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00169">BTD.h:169</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae20db05997d6849ad3de3d7eb6145f93"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a></div><div class="ttdeci">#define NUM_PARSERS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a699c5d6eb13133dce9504391bc610f3e"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a></div><div class="ttdeci">#define KEYBOARD_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00024">BTHID.h:24</a></div></div>
<div class="ttc" id="class_b_t_d_html_aad7d8ef46e60b48ff4aaabefb0b290e7"><div class="ttname"><a href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">BTD::L2CAP_Command</a></div><div class="ttdeci">void L2CAP_Command(uint16_t handle, uint8_t *data, uint8_t nbytes, uint8_t channelLow=0x01, uint8_t channelHigh=0x00)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01193">BTD.cpp:1193</a></div></div>
<div class="ttc" id="class_b_t_d_html_a792ac4529b65235698ecf3d37982c05e"><div class="ttname"><a href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">BTD::l2cap_config_response</a></div><div class="ttdeci">void l2cap_config_response(uint16_t handle, uint8_t rxid, uint8_t *scid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01268">BTD.cpp:1268</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a9960d0d5ae92fc92c70bbb84c2a5c0cc"><div class="ttname"><a href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc">PENDING</a></div><div class="ttdeci">#define PENDING</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00176">BTD.h:176</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aad823543553cc7500ac49d7479eb858f"><div class="ttname"><a href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a></div><div class="ttdeci">#define L2CAP_FLAG_INTERRUPT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00144">BTD.h:144</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5f035450f226204f021e69ad1faa2e3a"><div class="ttname"><a href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a">l2cap_set_flag</a></div><div class="ttdeci">#define l2cap_set_flag(flag)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00161">BTD.h:161</a></div></div>
<div class="ttc" id="class_b_t_d_html_ab646a59311344966f139bb3b78f30233"><div class="ttname"><a href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">BTD::l2cap_config_request</a></div><div class="ttdeci">void l2cap_config_request(uint16_t handle, uint8_t rxid, uint8_t *dcid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l01251">BTD.cpp:1251</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0c444d5d06ec604820d426556c2f38d7"><div class="ttname"><a href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a></div><div class="ttdeci">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00137">BTD.h:137</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ac4bae0c65fd00ed849cb226302d19c85"><div class="ttname"><a href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85">L2CAP_CMD_CONNECTION_REQUEST</a></div><div class="ttdeci">#define L2CAP_CMD_CONNECTION_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00166">BTD.h:166</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a5ee874513852b83d6a04b991ab892f54"><div class="ttname"><a href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_af0b913a7e9e54b1f6ab95d82bd36f954"><div class="ttname"><a href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_CONNECT_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00114">BTD.h:114</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00096">BTHID.h:96</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ab569b2085ad29f41d1da9c0ed352bd65"><div class="ttname"><a href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a></div><div class="ttdeci">#define L2CAP_INTERRUPT_DISCONNECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00116">BTD.h:116</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a6ffcd72787c86f248192eb06a3fe18cb"><div class="ttname"><a href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb">L2CAP_CMD_COMMAND_REJECT</a></div><div class="ttdeci">#define L2CAP_CMD_COMMAND_REJECT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00165">BTD.h:165</a></div></div>
</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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: BTHID.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -93,21 +93,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_d_8h_source.html">BTD.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="controller_enums_8h_source.html">controllerEnums.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="hidboot_8h_source.html">hidboot.h</a>&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for BTHID.h:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8h__incl.png" border="0" usemap="#_b_t_h_i_d_8h" alt=""/></div>
<map name="_b_t_h_i_d_8h" id="_b_t_h_i_d_8h">
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="17,161,76,189"/><area shape="rect" id="node4" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="21,83,149,111"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="174,83,249,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="49,238,105,266"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="171,161,220,189"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="146,238,245,266"/></map>
<area shape="rect" id="node2" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/><area shape="rect" id="node4" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,83,149,111"/><area shape="rect" id="node3" href="_usb_8h.html" title="Usb.h" alt="" coords="57,315,113,343"/><area shape="rect" id="node5" href="hid_8h.html" title="hid.h" alt="" coords="88,161,137,189"/><area shape="rect" id="node6" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,238,223,266"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_b_t_h_i_d_8h__dep__incl.png" border="0" usemap="#_b_t_h_i_d_8hdep" alt=""/></div>
<map name="_b_t_h_i_d_8hdep" id="_b_t_h_i_d_8hdep">
<area shape="rect" id="node2" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,83,91,111"/></map>
<area shape="rect" id="node2" href="_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,83,91,111"/><area shape="rect" id="node3" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,83,188,111"/><area shape="rect" id="node4" href="_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="108,161,195,189"/></map>
</div>
</div>
<p><a href="_b_t_h_i_d_8h_source.html">Go to the source code of this file.</a></p>
@ -119,430 +118,14 @@ 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:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68bcdd68c269cd7970d5271a00bbe5fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a68bcdd68c269cd7970d5271a00bbe5fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf733ee2c84bd8df4d24f2ae1f3b378"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:aaaf733ee2c84bd8df4d24f2ae1f3b378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0b913a7e9e54b1f6ab95d82bd36f954"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:af0b913a7e9e54b1f6ab95d82bd36f954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e3a81d9a8850075fd10933acc5a035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a73e3a81d9a8850075fd10933acc5a035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e5a9c283f0912833f3e0418d3feadd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:a2e5a9c283f0912833f3e0418d3feadd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad823543553cc7500ac49d7479eb858f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="separator:aad823543553cc7500ac49d7479eb858f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c444d5d06ec604820d426556c2f38d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="separator:a0c444d5d06ec604820d426556c2f38d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>&#160;&#160;&#160;0x08</td></tr>
<tr class="separator:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27057737ae0b2246442511c01eeed192"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>&#160;&#160;&#160;0x10</td></tr>
<tr class="separator:a27057737ae0b2246442511c01eeed192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc096a05301f3cbdece4ad372cc149c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>&#160;&#160;&#160;0x20</td></tr>
<tr class="separator:acc096a05301f3cbdece4ad372cc149c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a969a1ee84797f3ee5006c41f67373f96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>&#160;&#160;&#160;0x40</td></tr>
<tr class="separator:a969a1ee84797f3ee5006c41f67373f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015f3b25bd7a2908c84b973dec453f45"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>&#160;&#160;&#160;0x80</td></tr>
<tr class="separator:a015f3b25bd7a2908c84b973dec453f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaec1ddc53593c80dc625c1f361e3a24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#acaec1ddc53593c80dc625c1f361e3a24">l2cap_connected_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)</td></tr>
<tr class="separator:acaec1ddc53593c80dc625c1f361e3a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac72a2b645fafc5bdbd85c1f59cc937cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc">l2cap_connected_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)</td></tr>
<tr class="separator:ac72a2b645fafc5bdbd85c1f59cc937cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td></tr>
<tr class="separator:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td></tr>
<tr class="separator:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0cab74308e812106252c53b18c0391"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td></tr>
<tr class="separator:a7f0cab74308e812106252c53b18c0391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667178a4486c4dee88e052b3562362cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td></tr>
<tr class="separator:a667178a4486c4dee88e052b3562362cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td></tr>
<tr class="separator:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fa7bceb44bbdff3229fd431627b9868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td></tr>
<tr class="separator:a9fa7bceb44bbdff3229fd431627b9868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a699c5d6eb13133dce9504391bc610f3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a699c5d6eb13133dce9504391bc610f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b48c93189cf128c1ef13ce86b4fa6be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be">MOUSE_PARSER_ID</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a0b48c93189cf128c1ef13ce86b4fa6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3dce23ba2c4c289645510dc8f51b65a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a">epMUL</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ab3dce23ba2c4c289645510dc8f51b65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20db05997d6849ad3de3d7eb6145f93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ae20db05997d6849ad3de3d7eb6145f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a15cc1db556ad9a4ec6144ca8a42f8919"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_WAIT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00026">26</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="abac08b5b24a1cd2b12517cd9aa6c616b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_SUCCESS&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00029">29</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac7aa7fd7a8a34a6c9e420e3cb114737b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_SETUP&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00030">30</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a68bcdd68c269cd7970d5271a00bbe5fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_CONNECT_REQUEST&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00033">33</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="aaaf733ee2c84bd8df4d24f2ae1f3b378"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_CONFIG_REQUEST&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00034">34</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="af0b913a7e9e54b1f6ab95d82bd36f954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_CONNECT_REQUEST&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00035">35</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a73e3a81d9a8850075fd10933acc5a035"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_CONFIG_REQUEST&#160;&#160;&#160;6</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00037">37</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae4da52ca67e1f8b977199b24e8f3a400"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_DONE&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00038">38</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab569b2085ad29f41d1da9c0ed352bd65"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_DISCONNECT&#160;&#160;&#160;8</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00040">40</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b5140e7ca5941e5535c575255ffc1cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_DISCONNECT&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00041">41</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2e5a9c283f0912833f3e0418d3feadd7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONTROL_CONNECTED&#160;&#160;&#160;0x01</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00044">44</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="aad823543553cc7500ac49d7479eb858f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_INTERRUPT_CONNECTED&#160;&#160;&#160;0x02</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00045">45</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0c444d5d06ec604820d426556c2f38d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS&#160;&#160;&#160;0x04</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00046">46</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2b3cdcd3124251a40ce825da0d8dcb6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS&#160;&#160;&#160;0x08</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00047">47</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a27057737ae0b2246442511c01eeed192"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE&#160;&#160;&#160;0x10</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00048">48</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="acc096a05301f3cbdece4ad372cc149c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE&#160;&#160;&#160;0x20</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00049">49</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a969a1ee84797f3ee5006c41f67373f96"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST&#160;&#160;&#160;0x40</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00050">50</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a015f3b25bd7a2908c84b973dec453f45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST&#160;&#160;&#160;0x80</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00051">51</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="acaec1ddc53593c80dc625c1f361e3a24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connected_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00054">54</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac72a2b645fafc5bdbd85c1f59cc937cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connected_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00055">55</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a39a58b19fb4ef26cf503ed57a43570a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00056">56</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b3e87e1f460bc011e69f5e53e79c104"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00057">57</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7f0cab74308e812106252c53b18c0391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00058">58</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a667178a4486c4dee88e052b3562362cd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00059">59</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a728c7d92dd341dcc1b8f4bf95bb4826d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00060">60</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9fa7bceb44bbdff3229fd431627b9868"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00061">61</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="a699c5d6eb13133dce9504391bc610f3e"></a>
<div class="memitem">
<div class="memproto">
@ -553,7 +136,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00063">63</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00024">24</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
@ -567,21 +150,21 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00064">64</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00025">25</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab3dce23ba2c4c289645510dc8f51b65a"></a>
<a class="anchor" id="ae20db05997d6849ad3de3d7eb6145f93"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define epMUL&#160;&#160;&#160;2</td>
<td class="memname">#define NUM_PARSERS&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00065">65</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
<p>Definition at line <a class="el" href="_b_t_h_i_d_8h_source.html#l00026">26</a> of file <a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>.</p>
</div>
</div>
@ -590,7 +173,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

View file

@ -1,3 +1,5 @@
<map id="BTHID.h" name="BTHID.h">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="5,83,91,111"/>
<area shape="rect" id="node3" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="115,83,188,111"/>
<area shape="rect" id="node4" href="$_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="108,161,195,189"/>
</map>

View file

@ -1 +1 @@
b3540e7b4b9e3a2df110f82ca3e6f24e
f8f7a945eda22215fd32dc14b58fcae7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -1,8 +1,7 @@
<map id="BTHID.h" name="BTHID.h">
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="17,161,76,189"/>
<area shape="rect" id="node4" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="21,83,149,111"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="174,83,249,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="49,238,105,266"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="171,161,220,189"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="146,238,245,266"/>
<area shape="rect" id="node2" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,161,64,189"/>
<area shape="rect" id="node4" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,83,149,111"/>
<area shape="rect" id="node3" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,315,113,343"/>
<area shape="rect" id="node5" href="$hid_8h.html" title="hid.h" alt="" coords="88,161,137,189"/>
<area shape="rect" id="node6" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,238,223,266"/>
</map>

View file

@ -1 +1 @@
037c2f7eb5bb2a91683242d6c47805c2
50c98864be761896492416679dad01a4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 15 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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: BTHID.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -110,144 +110,109 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _bthid_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hidboot_8h.html">hidboot.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">/* Bluetooth L2CAP states for L2CAP_task() */</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 26</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hidboot_8h.html">hidboot.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e"> 24</a></span>&#160;<span class="preprocessor">#define KEYBOARD_PARSER_ID 0</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MOUSE_PARSER_ID 1</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define NUM_PARSERS 2</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// These states are used if the device is the host</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 29</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 1</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 30</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 2</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// These states are used if the Arduino is the host</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 33</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 3</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 34</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 4</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 35</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 5</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 37</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 6</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 38</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DONE 7</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 40</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 8</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 9</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/* L2CAP event flags */</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 44</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x01</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x02</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x04</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x08</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a27057737ae0b2246442511c01eeed192"> 48</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x10</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x20</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 50</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x40</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x80</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#acaec1ddc53593c80dc625c1f361e3a24"> 54</a></span>&#160;<span class="preprocessor">#define l2cap_connected_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONTROL_CONNECTED)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connected_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_INTERRUPT_CONNECTED)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a39a58b19fb4ef26cf503ed57a43570a4"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_CONTROL_SUCCESS)</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a9b3e87e1f460bc011e69f5e53e79c104"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a7f0cab74308e812106252c53b18c0391"> 58</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE)</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a667178a4486c4dee88e052b3562362cd"> 59</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d"> 60</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_CONTROL_REQUEST)</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a9fa7bceb44bbdff3229fd431627b9868"> 61</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e"> 63</a></span>&#160;<span class="preprocessor">#define KEYBOARD_PARSER_ID 0</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#a0b48c93189cf128c1ef13ce86b4fa6be"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MOUSE_PARSER_ID 1</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define epMUL 2</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html"> 68</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_h_i_d.html">BTHID</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_b_t_h_i_d.html#ab81dcc90a64615b7ae38083dd8188505">BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a> = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;1234&quot;</span>);</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html"> 29</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_h_i_d.html">BTHID</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a> = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;0000&quot;</span>);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>(uint8_t* <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">Run</a>();</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">disconnect</a>();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575"> 59</a></span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *<a class="code" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">GetReportParser</a>(uint8_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> pRptParser[id];</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;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1"> 71</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">SetReportParser</a>(uint8_t <span class="keywordtype">id</span>, <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *prs) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> &gt;= <a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>)</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; pRptParser[id] = prs;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>(uint8_t* <a class="code" href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">ACLData</a>);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">Run</a>();</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">Reset</a>();</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">disconnect</a>();</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575"> 92</a></span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *<a class="code" href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">GetReportParser</a>(uint8_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> pRptParser[id];</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1"> 96</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">SetReportParser</a>(uint8_t <span class="keywordtype">id</span>, <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *prs) {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; pRptParser[id] = prs;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595"> 82</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">setProtocolMode</a>(uint8_t mode) {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; protocolMode = mode;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">setLeds</a>(uint8_t data);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4"> 93</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45"> 96</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595"> 101</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">setProtocolMode</a>(uint8_t mode) {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; protocolMode = mode;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4"> 103</a></span>&#160; };</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45"> 109</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (pBtd)</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">pairWithHID</a>();</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c"> 105</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; };</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a>]; <span class="comment">// Pointer to HIDReportParsers.</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c"> 118</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> *pRptParser[<a class="code" href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a">epMUL</a>];</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> setProtocol();</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint8_t protocolMode;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></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; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; uint16_t hci_handle;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; uint8_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint8_t ButtonState, OldButtonState, ButtonClickState;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; int16_t xAxis, yAxis, scroll;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint16_t hci_handle;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it already has established a connection</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0070</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0071</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;};</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="hidboot_8h_html"><div class="ttname"><a href="hidboot_8h.html">hidboot.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00061">BTHID.cpp:61</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00103">BTHID.h:103</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a84eb1b910027f2d78741f65225c14e54"><div class="ttname"><a href="class_b_t_h_i_d.html#a84eb1b910027f2d78741f65225c14e54">BTHID::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00058">BTHID.cpp:58</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00093">BTHID.h:93</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a938eab04e406a29cc9324dad3ccb52cc"><div class="ttname"><a href="class_b_t_h_i_d.html#a938eab04e406a29cc9324dad3ccb52cc">BTHID::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00347">BTHID.cpp:347</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00047">BTHID.cpp:47</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ac2d67e173774e344bca86fbd0ed5a10c"><div class="ttname"><a href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">BTHID::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00118">BTHID.h:118</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00441">BTD.h:441</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00054">BTHID.cpp:54</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ade1924514bc9c9cd71f54a1f37529575"><div class="ttname"><a href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">BTHID::GetReportParser</a></div><div class="ttdeci">HIDReportParser * GetReportParser(uint8_t id)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00092">BTHID.h:92</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ab3dce23ba2c4c289645510dc8f51b65a"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ab3dce23ba2c4c289645510dc8f51b65a">epMUL</a></div><div class="ttdeci">#define epMUL</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00065">BTHID.h:65</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html"><div class="ttname"><a href="class_h_i_d_report_parser.html">HIDReportParser</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00135">hid.h:135</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab81dcc90a64615b7ae38083dd8188505"><div class="ttname"><a href="class_b_t_h_i_d.html#ab81dcc90a64615b7ae38083dd8188505">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;1234&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00068">BTHID.h:68</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_af4c58b81414a037910dd6fb78f97b96e"><div class="ttname"><a href="class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e">BTHID::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00044">BTHID.cpp:44</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ac2d67e173774e344bca86fbd0ed5a10c"><div class="ttname"><a href="class_b_t_h_i_d.html#ac2d67e173774e344bca86fbd0ed5a10c">BTHID::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00105">BTHID.h:105</a></div></div>
<div class="ttc" id="class_b_t_d_html_a0b59db80825ffd5974e0d2c4a046b328"><div class="ttname"><a href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328">BTD::pairWithHID</a></div><div class="ttdeci">void pairWithHID()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00516">BTD.h:516</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00051">BTHID.cpp:51</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ade1924514bc9c9cd71f54a1f37529575"><div class="ttname"><a href="class_b_t_h_i_d.html#ade1924514bc9c9cd71f54a1f37529575">BTHID::GetReportParser</a></div><div class="ttdeci">HIDReportParser * GetReportParser(uint8_t id)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00059">BTHID.h:59</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae222e33ac617620c4cab5c1b23b89310"><div class="ttname"><a href="class_b_t_h_i_d.html#ae222e33ac617620c4cab5c1b23b89310">BTHID::setLeds</a></div><div class="ttdeci">void setLeds(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00396">BTHID.cpp:396</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_ae20db05997d6849ad3de3d7eb6145f93"><div class="ttname"><a href="_b_t_h_i_d_8h.html#ae20db05997d6849ad3de3d7eb6145f93">NUM_PARSERS</a></div><div class="ttdeci">#define NUM_PARSERS</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00026">BTHID.h:26</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html"><div class="ttname"><a href="class_h_i_d_report_parser.html">HIDReportParser</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00138">hid.h:138</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afceaafc89581441da40b141170b98595"><div class="ttname"><a href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">BTHID::setProtocolMode</a></div><div class="ttdeci">void setProtocolMode(uint8_t mode)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00101">BTHID.h:101</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00109">BTHID.h:109</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a0e903f0b5040f3561e5de6c4431027b1"><div class="ttname"><a href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">BTHID::SetReportParser</a></div><div class="ttdeci">bool SetReportParser(uint8_t id, HIDReportParser *prs)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00096">BTHID.h:96</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afceaafc89581441da40b141170b98595"><div class="ttname"><a href="class_b_t_h_i_d.html#afceaafc89581441da40b141170b98595">BTHID::setProtocolMode</a></div><div class="ttdeci">void setProtocolMode(uint8_t mode)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00082">BTHID.h:82</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a5ee874513852b83d6a04b991ab892f54"><div class="ttname"><a href="class_b_t_h_i_d.html#a5ee874513852b83d6a04b991ab892f54">BTHID::BTHID</a></div><div class="ttdeci">BTHID(BTD *p, bool pair=false, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00023">BTHID.cpp:23</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00096">BTHID.h:96</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a0e903f0b5040f3561e5de6c4431027b1"><div class="ttname"><a href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">BTHID::SetReportParser</a></div><div class="ttdeci">bool SetReportParser(uint8_t id, HIDReportParser *prs)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00071">BTHID.h:71</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for PS3BT.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -120,60 +120,6 @@ Classes</h2></td></tr>
Macros</h2></td></tr>
<tr class="memitem:a465c4c33eae0fd5f934ae12bc8d6ca7e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>&#160;&#160;&#160;50</td></tr>
<tr class="separator:a465c4c33eae0fd5f934ae12bc8d6ca7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad98e60fcc8acca70e545ba7c248af65a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ad98e60fcc8acca70e545ba7c248af65a">L2CAP_CONTROL_REQUEST</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad98e60fcc8acca70e545ba7c248af65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c004c746b90f2c8025bb1ddd20d811a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a0c004c746b90f2c8025bb1ddd20d811a">L2CAP_INTERRUPT_REQUEST</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a0c004c746b90f2c8025bb1ddd20d811a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2fdeba844d7f2021e0aed9616aad5e4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ac2fdeba844d7f2021e0aed9616aad5e4">L2CAP_INTERRUPT_SUCCESS</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:ac2fdeba844d7f2021e0aed9616aad5e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8463be04d86ddc1d58f6388d5be501ad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a8463be04d86ddc1d58f6388d5be501ad">L2CAP_HID_ENABLE_SIXAXIS</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a8463be04d86ddc1d58f6388d5be501ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e385f71ba4406d372f8210b48f5e133"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a7e385f71ba4406d372f8210b48f5e133">L2CAP_HID_PS3_LED</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:a7e385f71ba4406d372f8210b48f5e133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a969a1ee84797f3ee5006c41f67373f96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:a969a1ee84797f3ee5006c41f67373f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af693a78d3df21b24430347b804076b8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#af693a78d3df21b24430347b804076b8e">L2CAP_FLAG_CONFIG_CONTROL_REQUEST</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="separator:af693a78d3df21b24430347b804076b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c444d5d06ec604820d426556c2f38d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="separator:a0c444d5d06ec604820d426556c2f38d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015f3b25bd7a2908c84b973dec453f45"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>&#160;&#160;&#160;0x08</td></tr>
<tr class="separator:a015f3b25bd7a2908c84b973dec453f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8ff96117ba9c8f6a53c2ebbac0da33f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ab8ff96117ba9c8f6a53c2ebbac0da33f">L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST</a>&#160;&#160;&#160;0x10</td></tr>
<tr class="separator:ab8ff96117ba9c8f6a53c2ebbac0da33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>&#160;&#160;&#160;0x20</td></tr>
<tr class="separator:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27057737ae0b2246442511c01eeed192"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>&#160;&#160;&#160;0x40</td></tr>
<tr class="separator:a27057737ae0b2246442511c01eeed192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc096a05301f3cbdece4ad372cc149c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>&#160;&#160;&#160;0x80</td></tr>
<tr class="separator:acc096a05301f3cbdece4ad372cc149c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td></tr>
<tr class="separator:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b27c08aa64a339eb1d358707927d3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a48b27c08aa64a339eb1d358707927d3e">l2cap_config_request_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_p_s3_b_t_8h.html#af693a78d3df21b24430347b804076b8e">L2CAP_FLAG_CONFIG_CONTROL_REQUEST</a>)</td></tr>
<tr class="separator:a48b27c08aa64a339eb1d358707927d3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td></tr>
<tr class="separator:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fa7bceb44bbdff3229fd431627b9868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td></tr>
<tr class="separator:a9fa7bceb44bbdff3229fd431627b9868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5c6ab585a398e53f2ee5616fe0d4346"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#ad5c6ab585a398e53f2ee5616fe0d4346">l2cap_config_request_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_p_s3_b_t_8h.html#ab8ff96117ba9c8f6a53c2ebbac0da33f">L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST</a>)</td></tr>
<tr class="separator:ad5c6ab585a398e53f2ee5616fe0d4346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td></tr>
<tr class="separator:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0cab74308e812106252c53b18c0391"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td></tr>
<tr class="separator:a7f0cab74308e812106252c53b18c0391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667178a4486c4dee88e052b3562362cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_b_t_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td></tr>
<tr class="separator:a667178a4486c4dee88e052b3562362cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a465c4c33eae0fd5f934ae12bc8d6ca7e"></a>
@ -188,384 +134,6 @@ Macros</h2></td></tr>
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00024">24</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a15cc1db556ad9a4ec6144ca8a42f8919"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_WAIT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00027">27</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad98e60fcc8acca70e545ba7c248af65a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_REQUEST&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00028">28</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="abac08b5b24a1cd2b12517cd9aa6c616b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_SUCCESS&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00029">29</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac7aa7fd7a8a34a6c9e420e3cb114737b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_SETUP&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00030">30</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0c004c746b90f2c8025bb1ddd20d811a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_REQUEST&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00031">31</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac2fdeba844d7f2021e0aed9616aad5e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_SUCCESS&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00032">32</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8463be04d86ddc1d58f6388d5be501ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_HID_ENABLE_SIXAXIS&#160;&#160;&#160;6</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00033">33</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7e385f71ba4406d372f8210b48f5e133"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_HID_PS3_LED&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00034">34</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae4da52ca67e1f8b977199b24e8f3a400"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_DONE&#160;&#160;&#160;8</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00035">35</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab569b2085ad29f41d1da9c0ed352bd65"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_DISCONNECT&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00036">36</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b5140e7ca5941e5535c575255ffc1cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_DISCONNECT&#160;&#160;&#160;10</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00037">37</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a969a1ee84797f3ee5006c41f67373f96"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST&#160;&#160;&#160;0x01</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00040">40</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="af693a78d3df21b24430347b804076b8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_CONTROL_REQUEST&#160;&#160;&#160;0x02</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00041">41</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0c444d5d06ec604820d426556c2f38d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS&#160;&#160;&#160;0x04</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00042">42</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a015f3b25bd7a2908c84b973dec453f45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST&#160;&#160;&#160;0x08</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00043">43</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab8ff96117ba9c8f6a53c2ebbac0da33f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST&#160;&#160;&#160;0x10</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00044">44</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2b3cdcd3124251a40ce825da0d8dcb6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS&#160;&#160;&#160;0x20</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00045">45</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a27057737ae0b2246442511c01eeed192"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE&#160;&#160;&#160;0x40</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00046">46</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="acc096a05301f3cbdece4ad372cc149c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE&#160;&#160;&#160;0x80</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00047">47</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a728c7d92dd341dcc1b8f4bf95bb4826d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00050">50</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a48b27c08aa64a339eb1d358707927d3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_request_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_p_s3_b_t_8h.html#af693a78d3df21b24430347b804076b8e">L2CAP_FLAG_CONFIG_CONTROL_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00051">51</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a39a58b19fb4ef26cf503ed57a43570a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00052">52</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9fa7bceb44bbdff3229fd431627b9868"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00053">53</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad5c6ab585a398e53f2ee5616fe0d4346"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_request_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_p_s3_b_t_8h.html#ab8ff96117ba9c8f6a53c2ebbac0da33f">L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00054">54</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b3e87e1f460bc011e69f5e53e79c104"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00055">55</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7f0cab74308e812106252c53b18c0391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00056">56</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
<a class="anchor" id="a667178a4486c4dee88e052b3562362cd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_p_s3_b_t_8h_source.html#l00057">57</a> of file <a class="el" href="_p_s3_b_t_8h_source.html">PS3BT.h</a>.</p>
</div>
</div>
</div><!-- contents -->
@ -573,7 +141,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -114,175 +114,143 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e"> 24</a></span>&#160;<span class="preprocessor">#define HID_BUFFERSIZE 50 // Size of the buffer for the Playstation Motion Controller</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">/* Bluetooth L2CAP states for L2CAP_task() */</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 27</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ad98e60fcc8acca70e545ba7c248af65a"> 28</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_REQUEST 1</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 29</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 2</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 30</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 3</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a0c004c746b90f2c8025bb1ddd20d811a"> 31</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_REQUEST 4</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ac2fdeba844d7f2021e0aed9616aad5e4"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_SUCCESS 5</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a8463be04d86ddc1d58f6388d5be501ad"> 33</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_HID_ENABLE_SIXAXIS 6</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a7e385f71ba4406d372f8210b48f5e133"> 34</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_HID_PS3_LED 7</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 35</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DONE 8</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 36</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 37</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 10</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/* L2CAP event flags */</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 40</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x01</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#af693a78d3df21b24430347b804076b8e"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_REQUEST 0x02</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x04</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x08</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ab8ff96117ba9c8f6a53c2ebbac0da33f"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST 0x10</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x20</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a27057737ae0b2246442511c01eeed192"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x40</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x80</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="comment">/*Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d"> 50</a></span>&#160;<span class="preprocessor">#define l2cap_connection_request_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_CONTROL_REQUEST)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a48b27c08aa64a339eb1d358707927d3e"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_request_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_CONTROL_REQUEST)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a39a58b19fb4ef26cf503ed57a43570a4"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_CONTROL_SUCCESS)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a9fa7bceb44bbdff3229fd431627b9868"> 53</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#ad5c6ab585a398e53f2ee5616fe0d4346"> 54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_request_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_INTERRUPT_REQUEST)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a9b3e87e1f460bc011e69f5e53e79c104"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a7f0cab74308e812106252c53b18c0391"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE)</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_p_s3_b_t_8h.html#a667178a4486c4dee88e052b3562362cd"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html"> 65</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_b_t.html">PS3BT</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *pBtd, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>(uint8_t* <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">Run</a>();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">disconnect</a>();</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9b8726849cf6fbaf4e98a9652cb53b61">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a92c617e1d00860dc560af7cfe20938d9">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a8c04e0e821dcbfb8825d4b31ab270f00">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> a);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a9da5c045fafc3436dc2d2820cb234384">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; int16_t <a class="code" href="class_p_s3_b_t.html#a99be7c63e7cb91a26110e0e44b180a0a">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> a);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#a5f4d7fd35927694ae815091b487dcd60">getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> a);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#af9386c460169ea8f07e79c86a8938965">get9DOFValues</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> a);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a88106bc19e763a191a3fe04f4641f4c6">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> c);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; String <a class="code" href="class_p_s3_b_t.html#ac31b6d24710711a9d460367b6aae308f">getStatusString</a>();</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; String <a class="code" href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">getTemperature</a>();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">setAllOff</a>();</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">setRumbleOff</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad18e284705a4899d72937b97e27cb0a4">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> mode);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad18e284705a4899d72937b97e27cb0a4">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</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_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037"> 180</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>() {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad400e1ce37c2dadd48938187b5021d42">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a313d4c962273fc7daccb0319d80c5f61">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a> color);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c"> 219</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 221</a></span>&#160; };</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 227</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 229</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">/* Mandatory members */</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; int16_t hci_handle;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; uint8_t remote_name[30]; <span class="comment">// First 30 chars of remote name</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">/* variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; uint16_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</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; uint32_t ButtonState;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint32_t ButtonClickState;</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; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; uint32_t timerBulbRumble; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</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">/* HID Commands */</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;};</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_b_t_html_a9da5c045fafc3436dc2d2820cb234384"><div class="ttname"><a href="class_p_s3_b_t.html#a9da5c045fafc3436dc2d2820cb234384">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00067">PS3BT.cpp:67</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a92c617e1d00860dc560af7cfe20938d9"><div class="ttname"><a href="class_p_s3_b_t.html#a92c617e1d00860dc560af7cfe20938d9">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00056">PS3BT.cpp:56</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00229">PS3BT.h:229</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac31b6d24710711a9d460367b6aae308f"><div class="ttname"><a href="class_p_s3_b_t.html#ac31b6d24710711a9d460367b6aae308f">PS3BT::getStatusString</a></div><div class="ttdeci">String getStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00163">PS3BT.cpp:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00479">PS3BT.cpp:479</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4a"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a></div><div class="ttdeci">Sensor</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s3_b_t.html">PS3BT</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT</a>(<a class="code" href="class_b_t_d.html">BTD</a> *pBtd, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>(uint8_t* <a class="code" href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">ACLData</a>);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">Run</a>();</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">Reset</a>();</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">disconnect</a>();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint8_t <a class="code" href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; int16_t <a class="code" href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">get9DOFValues</a>(<a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">printStatusString</a>();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; String <a class="code" href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">getTemperature</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">setAllOff</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">setRumbleOff</a>();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>() {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">setLedRaw</a>(0);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c"> 186</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9"> 188</a></span>&#160; };</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3Connected</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a"> 194</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3MoveConnected</a>;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430"> 196</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3NavigationConnected</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">/* Mandatory members */</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; int16_t hci_handle;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uint8_t remote_name[30]; <span class="comment">// First 30 chars of remote name</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint32_t timerHID; <span class="comment">// Timer used see if there has to be a delay before a new HID command</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint32_t timerBulbRumble; <span class="comment">// used to continuously set PS3 Move controller Bulb and rumble values</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for L2CAP in data</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t HIDBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t HIDMoveBuffer[<a class="code" href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a>]; <span class="comment">// Used to store HID commands for the Move controller</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0040</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0041</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">void</span> HIDMove_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">void</span> enable_sixaxis(); <span class="comment">// Command used to enable the Dualshock 3 and Navigation controller to send data via Bluetooth</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;};</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00211">PS3Enums.h:211</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab35277632083d43f8750d130bea6d430"><div class="ttname"><a href="class_p_s3_b_t.html#ab35277632083d43f8750d130bea6d430">PS3BT::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00196">PS3BT.h:196</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5062acbd19a52d88a998f19060fbc46a"><div class="ttname"><a href="class_p_s3_b_t.html#a5062acbd19a52d88a998f19060fbc46a">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00159">PS3BT.cpp:159</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab41f25f45573239990f68611dc825086"><div class="ttname"><a href="class_p_s3_b_t.html#ab41f25f45573239990f68611dc825086">PS3BT::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00456">PS3BT.cpp:456</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a4e6cdea1880421a21cc8cfca0f00b449"><div class="ttname"><a href="class_p_s3_b_t.html#a4e6cdea1880421a21cc8cfca0f00b449">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00568">PS3BT.cpp:568</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ab4f49b61167df001d13b68c7699651b4"><div class="ttname"><a href="class_p_s3_b_t.html#ab4f49b61167df001d13b68c7699651b4">PS3BT::getTemperature</a></div><div class="ttdeci">String getTemperature()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00144">PS3BT.cpp:144</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00635">PS3BT.cpp:635</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00544">PS3BT.cpp:544</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a99be7c63e7cb91a26110e0e44b180a0a"><div class="ttname"><a href="class_p_s3_b_t.html#a99be7c63e7cb91a26110e0e44b180a0a">PS3BT::getSensor</a></div><div class="ttdeci">int16_t getSensor(Sensor a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00071">PS3BT.cpp:71</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_af9386c460169ea8f07e79c86a8938965"><div class="ttname"><a href="class_p_s3_b_t.html#af9386c460169ea8f07e79c86a8938965">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(Sensor a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00115">PS3BT.cpp:115</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ac14d338ddb573d1c06f70749f9205689"><div class="ttname"><a href="class_p_s3_b_t.html#ac14d338ddb573d1c06f70749f9205689">PS3BT::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00616">PS3BT.cpp:616</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8f3945da5c4e00ce2fd3daf0b6267cec"><div class="ttname"><a href="class_p_s3_b_t.html#a8f3945da5c4e00ce2fd3daf0b6267cec">PS3BT::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00163">PS3BT.cpp:163</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6ee74242b0c1644496ff04b457f39cd2"><div class="ttname"><a href="class_p_s3_b_t.html#a6ee74242b0c1644496ff04b457f39cd2">PS3BT::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00521">PS3BT.cpp:521</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00183">PS3Enums.h:183</a></div></div>
<div class="ttc" id="_p_s3_b_t_8h_html_a465c4c33eae0fd5f934ae12bc8d6ca7e"><div class="ttname"><a href="_p_s3_b_t_8h.html#a465c4c33eae0fd5f934ae12bc8d6ca7e">HID_BUFFERSIZE</a></div><div class="ttdeci">#define HID_BUFFERSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00024">PS3BT.h:24</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00213">PS3BT.cpp:213</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5f4d7fd35927694ae815091b487dcd60"><div class="ttname"><a href="class_p_s3_b_t.html#a5f4d7fd35927694ae815091b487dcd60">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(Angle a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00088">PS3BT.cpp:88</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a576d72cdf12af58ae59c8f2a02f99c0f"><div class="ttname"><a href="class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f">PS3BT::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00207">PS3BT.cpp:207</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5e7842bef25e7c7210974f5405e1bc81"><div class="ttname"><a href="class_p_s3_b_t.html#a5e7842bef25e7c7210974f5405e1bc81">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00052">PS3BT.cpp:52</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a07c8dcb809005e8492bbef4e1f4b9d24"><div class="ttname"><a href="class_p_s3_b_t.html#a07c8dcb809005e8492bbef4e1f4b9d24">PS3BT::getSensor</a></div><div class="ttdeci">int16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00071">PS3BT.cpp:71</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html"><div class="ttname"><a href="class_p_s3_b_t.html">PS3BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00065">PS3BT.h:65</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70b"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00182">PS3Enums.h:182</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a></div><div class="ttdeci">Colors</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00115">PS3Enums.h:115</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a11a7a031b249e09c39aa0872fa1e4a6c"><div class="ttname"><a href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">PS3BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00219">PS3BT.h:219</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aff4be38428d075a117a5bb7f6209a231"><div class="ttname"><a href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a></div><div class="ttdeci">Rumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00210">PS3Enums.h:210</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00221">PS3BT.h:221</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a313d4c962273fc7daccb0319d80c5f61"><div class="ttname"><a href="class_p_s3_b_t.html#a313d4c962273fc7daccb0319d80c5f61">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00596">PS3BT.cpp:596</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00622">PS3BT.cpp:622</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00227">PS3BT.h:227</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a0200d2d1b3a7930d0be6c50e7c8ae7d1"><div class="ttname"><a href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a></div><div class="ttdeci">Angle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00177">PS3Enums.h:177</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad400e1ce37c2dadd48938187b5021d42"><div class="ttname"><a href="class_p_s3_b_t.html#ad400e1ce37c2dadd48938187b5021d42">PS3BT::setLedOn</a></div><div class="ttdeci">void setLedOn(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00591">PS3BT.cpp:591</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae1e00364c5ff214274438bf54c3cf743"><div class="ttname"><a href="class_p_s3_b_t.html#ae1e00364c5ff214274438bf54c3cf743">PS3BT::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00088">PS3BT.cpp:88</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html"><div class="ttname"><a href="class_p_s3_b_t.html">PS3BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00032">PS3BT.h:32</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a11a7a031b249e09c39aa0872fa1e4a6c"><div class="ttname"><a href="class_p_s3_b_t.html#a11a7a031b249e09c39aa0872fa1e4a6c">PS3BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00186">PS3BT.h:186</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a648e2bfeb06e2dc1603202e95324b206"><div class="ttname"><a href="class_p_s3_b_t.html#a648e2bfeb06e2dc1603202e95324b206">PS3BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00067">PS3BT.cpp:67</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2804535e3164eafca80a6f6c6bd9a4f9"><div class="ttname"><a href="class_p_s3_b_t.html#a2804535e3164eafca80a6f6c6bd9a4f9">PS3BT::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00188">PS3BT.h:188</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad0926b75edcbb12ddf76f78e66728782"><div class="ttname"><a href="class_p_s3_b_t.html#ad0926b75edcbb12ddf76f78e66728782">PS3BT::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00603">PS3BT.cpp:603</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9273b6796948b83772117b3805421b4a"><div class="ttname"><a href="class_p_s3_b_t.html#a9273b6796948b83772117b3805421b4a">PS3BT::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00194">PS3BT.h:194</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00178">PS3Enums.h:178</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a7a3e593911490538c061e9ccb4273f87"><div class="ttname"><a href="class_p_s3_b_t.html#a7a3e593911490538c061e9ccb4273f87">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00541">PS3BT.cpp:541</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00233">PS3BT.cpp:233</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00180">PS3BT.h:180</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a88106bc19e763a191a3fe04f4641f4c6"><div class="ttname"><a href="class_p_s3_b_t.html#a88106bc19e763a191a3fe04f4641f4c6">PS3BT::getStatus</a></div><div class="ttdeci">bool getStatus(Status c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00159">PS3BT.cpp:159</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ad18e284705a4899d72937b97e27cb0a4"><div class="ttname"><a href="class_p_s3_b_t.html#ad18e284705a4899d72937b97e27cb0a4">PS3BT::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(Rumble mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00564">PS3BT.cpp:564</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00226">PS3BT.cpp:226</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aa310ede24b68b1b03cfc49c4308c66b7"><div class="ttname"><a href="class_p_s3_b_t.html#aa310ede24b68b1b03cfc49c4308c66b7">PS3BT::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00227">PS3BT.cpp:227</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a2ce9fb6251b56ec877cd22af7213a037"><div class="ttname"><a href="class_p_s3_b_t.html#a2ce9fb6251b56ec877cd22af7213a037">PS3BT::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8h_source.html#l00147">PS3BT.h:147</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae163b7f00d287f8647dabc2897d0d208"><div class="ttname"><a href="class_p_s3_b_t.html#ae163b7f00d287f8647dabc2897d0d208">PS3BT::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00577">PS3BT.cpp:577</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a39ad8810c67e85eddc68c8a16d38a985"><div class="ttname"><a href="class_p_s3_b_t.html#a39ad8810c67e85eddc68c8a16d38a985">PS3BT::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00220">PS3BT.cpp:220</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a8c04e0e821dcbfb8825d4b31ab270f00"><div class="ttname"><a href="class_p_s3_b_t.html#a8c04e0e821dcbfb8825d4b31ab270f00">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(Button a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00063">PS3BT.cpp:63</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00581">PS3BT.cpp:581</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_ae6596ca28c65db105392a9fed8698ef2"><div class="ttname"><a href="class_p_s3_b_t.html#ae6596ca28c65db105392a9fed8698ef2">PS3BT::get9DOFValues</a></div><div class="ttdeci">double get9DOFValues(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00115">PS3BT.cpp:115</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a6dac11972fc4b1f5984d43365be1a954"><div class="ttname"><a href="class_p_s3_b_t.html#a6dac11972fc4b1f5984d43365be1a954">PS3BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00063">PS3BT.cpp:63</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a0acdc09661a8099b2d5e8b59cd8325bb"><div class="ttname"><a href="class_p_s3_b_t.html#a0acdc09661a8099b2d5e8b59cd8325bb">PS3BT::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00558">PS3BT.cpp:558</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_aab14832f7844f07e6287eb443019b6e7"><div class="ttname"><a href="class_p_s3_b_t.html#aab14832f7844f07e6287eb443019b6e7">PS3BT::PS3BT</a></div><div class="ttdeci">PS3BT(BTD *pBtd, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00023">PS3BT.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a9b8726849cf6fbaf4e98a9652cb53b61"><div class="ttname"><a href="class_p_s3_b_t.html#a9b8726849cf6fbaf4e98a9652cb53b61">PS3BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00052">PS3BT.cpp:52</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00555">PS3BT.cpp:555</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a5c87e7db5311a5d56f78c994b5545e4e"><div class="ttname"><a href="class_p_s3_b_t.html#a5c87e7db5311a5d56f78c994b5545e4e">PS3BT::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00532">PS3BT.cpp:532</a></div></div>
<div class="ttc" id="class_p_s3_b_t_html_a3b0e522b5d8a39d3daf540e4feb4f5fe"><div class="ttname"><a href="class_p_s3_b_t.html#a3b0e522b5d8a39d3daf540e4feb4f5fe">PS3BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_b_t_8cpp_source.html#l00056">PS3BT.cpp:56</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -106,7 +106,7 @@ This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s3_enums_8h__dep__incl.png" border="0" usemap="#_p_s3_enums_8hdep" alt=""/></div>
<map name="_p_s3_enums_8hdep" id="_p_s3_enums_8hdep">
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="15,83,88,111"/><area shape="rect" id="node4" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="119,83,203,111"/><area shape="rect" id="node3" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,161,91,189"/><area shape="rect" id="node5" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="116,161,215,189"/></map>
<area shape="rect" id="node2" href="_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="18,83,91,111"/><area shape="rect" id="node4" href="_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="123,83,207,111"/><area shape="rect" id="node6" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="238,83,311,111"/><area shape="rect" id="node3" href="_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,161,91,189"/><area shape="rect" id="node5" href="_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="116,161,215,189"/><area shape="rect" id="node7" href="_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="239,161,325,189"/></map>
</div>
</div>
<p><a href="_p_s3_enums_8h_source.html">Go to the source code of this file.</a></p>
@ -120,87 +120,87 @@ Macros</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a55ecd4f2ec2ebfe8d5b0163e4ac2a967"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,
<tr class="memitem:aac6fa7b0395b95cc528deaad0ce884a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,
<a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,
<a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00
<br/>
}</td></tr>
<tr class="separator:a55ecd4f2ec2ebfe8d5b0163e4ac2a967"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9628766e5f200cc84b296b071b09ff4a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb">aX</a> = 50,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd">aY</a> = 52,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc">aZ</a> = 54,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675">gZ</a> = 56,
<tr class="separator:aac6fa7b0395b95cc528deaad0ce884a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00d5030559c481763282483889597d51"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a> = 50,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a> = 52,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a> = 54,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a> = 56,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7">aXmove</a> = 28,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f">aZmove</a> = 30,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199">aYmove</a> = 32,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731">gXmove</a> = 40,
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7">aXmove</a> = 28,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f">aZmove</a> = 30,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199">aYmove</a> = 32,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731">gXmove</a> = 40,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a> = 42,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91">gYmove</a> = 44,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f">tempMove</a> = 46,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a> = 47,
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a> = 42,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91">gYmove</a> = 44,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f">tempMove</a> = 46,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a> = 47,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a> = 49,
<a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78">mYmove</a> = 50
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a> = 49,
<a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78">mYmove</a> = 50
<br/>
}</td></tr>
<tr class="separator:a9628766e5f200cc84b296b071b09ff4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0200d2d1b3a7930d0be6c50e7c8ae7d1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> { <a class="el" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a> = 0x01,
<a class="el" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173">Roll</a> = 0x02
<tr class="separator:a00d5030559c481763282483889597d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c7824a10a9ffa8fea85602fcf4d84e6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> { <a class="el" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a> = 0x01,
<a class="el" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173">Roll</a> = 0x02
}</td></tr>
<tr class="separator:a0200d2d1b3a7930d0be6c50e7c8ae7d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67a0db04d321a74b7e7fcfd3f1a3f70b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,
<tr class="separator:a7c7824a10a9ffa8fea85602fcf4d84e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add5c7a32e8138b44244caf07232161ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> { <br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,
<br/>
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14,
<a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16
&#160;&#160;<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14,
<a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16
<br/>
}</td></tr>
<tr class="separator:a67a0db04d321a74b7e7fcfd3f1a3f70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff4be38428d075a117a5bb7f6209a231"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> { <a class="el" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,
<a class="el" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20
<tr class="separator:add5c7a32e8138b44244caf07232161ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab195293384292950ebc2166bfe360fd1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> { <a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,
<a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20
}</td></tr>
<tr class="separator:aff4be38428d075a117a5bb7f6209a231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:ab195293384292950ebc2166bfe360fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a8cf62ee374ebaa5f7582c073e624bc74"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74">PS3_REPORT_BUFFER</a> []</td></tr>
<tr class="separator:a8cf62ee374ebaa5f7582c073e624bc74"><td class="memSeparator" colspan="2">&#160;</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="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a> []</td></tr>
<tr class="separator:af83672eccf0c7a02847ce75bc5c55a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3392eea150ac9151bef45148f0d7895"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a> []</td></tr>
<tr class="separator:af3392eea150ac9151bef45148f0d7895"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb19c2ede75659ab3b926996a8a09f2f"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f">ANALOGBUTTONS</a> []</td></tr>
<tr class="separator:abb19c2ede75659ab3b926996a8a09f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8d0298319d2131eb55cd94c07bcf391"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a> [<a class="el" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>]</td></tr>
<tr class="separator:ab8d0298319d2131eb55cd94c07bcf391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ba142ed3f585d034f29cc2c36fba0e9"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a> []</td></tr>
<tr class="separator:a7ba142ed3f585d034f29cc2c36fba0e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c28adabe5fc5da343fe8a5ac9ca6de"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a> []</td></tr>
<tr class="separator:a90c28adabe5fc5da343fe8a5ac9ca6de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac306dfe7b0e1b3a3e9bb357aa7552dec"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a> []</td></tr>
<tr class="separator:ac306dfe7b0e1b3a3e9bb357aa7552dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a4898fccf5d2aa053bc67894aa3627e0f"></a>
@ -214,7 +214,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Size of the output report buffer for the Dualshock and Navigation controllers </p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00037">37</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00024">24</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
@ -234,211 +234,211 @@ Variables</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967"></a>
<a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a></td>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Used to set the colors of the move controller. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743"></a>Red</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"></a>Red</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 0, b = 0 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106"></a>Green</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"></a>Green</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 255, b = 0 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8"></a>Blue</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"></a>Blue</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 0, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82"></a>Yellow</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"></a>Yellow</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 235, b = 4 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a"></a>Lightblue</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"></a>Lightblue</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 255, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c"></a>Purble</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"></a>Purble</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 0, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094"></a>White</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"></a>White</em>&#160;</td><td class="fielddoc">
<p>r = 255, g = 255, b = 255 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b"></a>Off</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"></a>Off</em>&#160;</td><td class="fielddoc">
<p>r = 0, g = 0, b = 0 </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00115">115</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00116">116</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9628766e5f200cc84b296b071b09ff4a"></a>
<a class="anchor" id="a00d5030559c481763282483889597d51"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a></td>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sensors inside the Sixaxis Dualshock 3 and Move controller.</p>
<p><b>Note:</b> that the location is shiftet 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<p><b>Note:</b> that the location is shifted 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb"></a>aX</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"></a>aX</em>&#160;</td><td class="fielddoc">
<p>Accelerometer x-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd"></a>aY</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"></a>aY</em>&#160;</td><td class="fielddoc">
<p>Accelerometer y-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc"></a>aZ</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"></a>aZ</em>&#160;</td><td class="fielddoc">
<p>Accelerometer z-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675"></a>gZ</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"></a>gZ</em>&#160;</td><td class="fielddoc">
<p>Gyro z-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7"></a>aXmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7"></a>aXmove</em>&#160;</td><td class="fielddoc">
<p>Accelerometer x-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f"></a>aZmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f"></a>aZmove</em>&#160;</td><td class="fielddoc">
<p>Accelerometer z-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199"></a>aYmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199"></a>aYmove</em>&#160;</td><td class="fielddoc">
<p>Accelerometer y-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731"></a>gXmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731"></a>gXmove</em>&#160;</td><td class="fielddoc">
<p>Gyro x-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d"></a>gZmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d"></a>gZmove</em>&#160;</td><td class="fielddoc">
<p>Gyro z-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91"></a>gYmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91"></a>gYmove</em>&#160;</td><td class="fielddoc">
<p>Gyro y-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f"></a>tempMove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f"></a>tempMove</em>&#160;</td><td class="fielddoc">
<p>Temperature sensor </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68"></a>mXmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68"></a>mXmove</em>&#160;</td><td class="fielddoc">
<p>Magnetometer x-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503"></a>mZmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503"></a>mZmove</em>&#160;</td><td class="fielddoc">
<p>Magnetometer z-axis </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78"></a>mYmove</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78"></a>mYmove</em>&#160;</td><td class="fielddoc">
<p>Magnetometer y-axis </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00141">141</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00142">142</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0200d2d1b3a7930d0be6c50e7c8ae7d1"></a>
<a class="anchor" id="a7c7824a10a9ffa8fea85602fcf4d84e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a></td>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Used to get the angle calculated using the accelerometer. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47"></a>Pitch</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"></a>Pitch</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173"></a>Roll</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173"></a>Roll</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00177">177</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00178">178</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70b"></a>
<a class="anchor" id="add5c7a32e8138b44244caf07232161ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a></td>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387"></a>Plugged</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"></a>Plugged</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924"></a>Unplugged</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"></a>Unplugged</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773"></a>Charging</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"></a>Charging</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6"></a>NotCharging</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"></a>NotCharging</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734"></a>Shutdown</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"></a>Shutdown</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089"></a>Dying</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"></a>Dying</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8"></a>Low</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"></a>Low</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f"></a>High</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"></a>High</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679"></a>Full</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"></a>Full</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030"></a>MoveCharging</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"></a>MoveCharging</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a"></a>MoveNotCharging</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"></a>MoveNotCharging</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c"></a>MoveShutdown</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"></a>MoveShutdown</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8"></a>MoveDying</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"></a>MoveDying</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf"></a>MoveLow</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"></a>MoveLow</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb"></a>MoveHigh</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"></a>MoveHigh</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943"></a>MoveFull</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"></a>MoveFull</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209"></a>CableRumble</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"></a>CableRumble</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1"></a>Cable</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"></a>Cable</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c"></a>BluetoothRumble</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"></a>BluetoothRumble</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb"></a>Bluetooth</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"></a>Bluetooth</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00182">182</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00183">183</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="aff4be38428d075a117a5bb7f6209a231"></a>
<a class="anchor" id="ab195293384292950ebc2166bfe360fd1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a></td>
<td class="memname">enum <a class="el" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b"></a>RumbleHigh</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"></a>RumbleHigh</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac"></a>RumbleLow</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"></a>RumbleLow</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00210">210</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00211">211</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a8cf62ee374ebaa5f7582c073e624bc74"></a>
<a class="anchor" id="ab8d0298319d2131eb55cd94c07bcf391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t PS3_REPORT_BUFFER[]</td>
<td class="memname">const uint8_t PS3_REPORT_BUFFER[<a class="el" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>]</td>
</tr>
</table>
</div><div class="memdoc">
@ -455,20 +455,21 @@ Variables</h2></td></tr>
<div class="line">}</div>
</div><!-- fragment --><p>Report buffer for all PS3 commands </p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00024">24</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00027">27</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="af83672eccf0c7a02847ce75bc5c55a1a"></a>
<a class="anchor" id="a7ba142ed3f585d034f29cc2c36fba0e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t LEDS[]</td>
<td class="memname">const uint8_t PS3_LEDS[]</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> 0x00, </div>
<div class="line"> 0x01, </div>
<div class="line"> 0x02, </div>
<div class="line"> 0x04, </div>
@ -479,7 +480,7 @@ Variables</h2></td></tr>
<div class="line"> 0x0C, </div>
<div class="line"> 0x0D, </div>
<div class="line"> 0x0E, </div>
<div class="line"> 0x0F </div>
<div class="line"> 0x0F, </div>
<div class="line">}</div>
</div><!-- fragment --><p>Used to set the LEDs on the controllers </p>
@ -487,12 +488,12 @@ Variables</h2></td></tr>
</div>
</div>
<a class="anchor" id="af3392eea150ac9151bef45148f0d7895"></a>
<a class="anchor" id="a90c28adabe5fc5da343fe8a5ac9ca6de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint32_t BUTTONS[]</td>
<td class="memname">const uint32_t PS3_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
@ -519,21 +520,21 @@ Variables</h2></td></tr>
<div class="line"></div>
<div class="line"> 0x010000, </div>
<div class="line"> 0x080000, </div>
<div class="line"> 0x100000 </div>
<div class="line"> 0x100000, </div>
<div class="line">}</div>
</div><!-- fragment --><p>Buttons on the controllers</p>
<p><b>Note:</b> that the location is shiftet 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<p><b>Note:</b> that the location is shifted 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00062">62</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00063">63</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
<a class="anchor" id="abb19c2ede75659ab3b926996a8a09f2f"></a>
<a class="anchor" id="ac306dfe7b0e1b3a3e9bb357aa7552dec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t ANALOGBUTTONS[]</td>
<td class="memname">const uint8_t PS3_ANALOG_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
@ -555,12 +556,12 @@ Variables</h2></td></tr>
<div class="line"> 0, 0, </div>
<div class="line"></div>
<div class="line"> </div>
<div class="line"> 15 </div>
<div class="line"> 15, </div>
<div class="line">}</div>
</div><!-- fragment --><p>Analog buttons on the controllers</p>
<p><b>Note:</b> that the location is shiftet 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<p><b>Note:</b> that the location is shifted 9 when it's connected via <a class="el" href="class_u_s_b.html">USB</a>. </p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00093">93</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
<p>Definition at line <a class="el" href="_p_s3_enums_8h_source.html#l00094">94</a> of file <a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>.</p>
</div>
</div>
@ -569,7 +570,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.5
</a> 1.8.6
</small></address>
</body>
</html>

View file

@ -1,6 +1,8 @@
<map id="PS3Enums.h" name="PS3Enums.h">
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="15,83,88,111"/>
<area shape="rect" id="node4" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="119,83,203,111"/>
<area shape="rect" id="node2" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="18,83,91,111"/>
<area shape="rect" id="node4" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="123,83,207,111"/>
<area shape="rect" id="node6" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="238,83,311,111"/>
<area shape="rect" id="node3" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="4,161,91,189"/>
<area shape="rect" id="node5" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="116,161,215,189"/>
<area shape="rect" id="node7" href="$_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="239,161,325,189"/>
</map>

View file

@ -1 +1 @@
632aeb814444892cb4235318575b2052
33a889bb2dd64e4ad2739cccaf1b7d9c

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 14 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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,218 +111,220 @@ 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="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74"> 24</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74">PS3_REPORT_BUFFER</a>[] PROGMEM = {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f"> 24</a></span>&#160;<span class="preprocessor">#define PS3_REPORT_BUFFER_SIZE 48</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391"> 27</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a>[<a class="code" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a>] PROGMEM = {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00</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;</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f"> 37</a></span>&#160;<span class="preprocessor">#define PS3_REPORT_BUFFER_SIZE 48</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; 0xff, 0x27, 0x10, 0x00, 0x32,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a2c6c24a4b63d9a34926fb35d6b49cd17"> 40</a></span>&#160;<span class="preprocessor">#define MOVE_REPORT_BUFFER_SIZE 7</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a"> 43</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; 0x01, <span class="comment">// LED1</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; 0x02, <span class="comment">// LED2</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; 0x04, <span class="comment">// LED3</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; 0x08, <span class="comment">// LED4</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; 0x09, <span class="comment">// LED5</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; 0x0A, <span class="comment">// LED6</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; 0x0C, <span class="comment">// LED7</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; 0x0D, <span class="comment">// LED8</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; 0x0E, <span class="comment">// LED9</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; 0x0F <span class="comment">// LED10</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895"> 62</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; 0x10, <span class="comment">// UP</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; 0x20, <span class="comment">// RIGHT</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; 0x40, <span class="comment">// DOWN</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; 0x80, <span class="comment">// LEFT</span></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; 0x01, <span class="comment">// SELECT</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; 0x08, <span class="comment">// START</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; 0x02, <span class="comment">// L3</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; 0x04, <span class="comment">// R3</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; 0x0100, <span class="comment">// L2</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; 0x0200, <span class="comment">// R2</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; 0x0400, <span class="comment">// L1</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; 0x0800, <span class="comment">// R1</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; 0x1000, <span class="comment">// TRIANGLE</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; 0x2000, <span class="comment">// CIRCLE</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; 0x4000, <span class="comment">// CROSS</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; 0x8000, <span class="comment">// SQUARE</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; 0x010000, <span class="comment">// PS</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; 0x080000, <span class="comment">// MOVE - covers 12 bits - we only need to read the top 8</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; 0x100000 <span class="comment">// T - covers 12 bits - we only need to read the top 8</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f"> 93</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f">ANALOGBUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; 23, <span class="comment">// UP_ANALOG</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; 24, <span class="comment">// RIGHT_ANALOG</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; 25, <span class="comment">// DOWN_ANALOG</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; 26, <span class="comment">// LEFT_ANALOG</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; 0, 0, 0, 0, <span class="comment">// Skip SELECT, L3, R3 and START</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; 27, <span class="comment">// L2_ANALOG</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; 28, <span class="comment">// R2_ANALOG</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; 29, <span class="comment">// L1_ANALOG</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; 30, <span class="comment">// R1_ANALOG</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; 31, <span class="comment">// TRIANGLE_ANALOG</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; 32, <span class="comment">// CIRCLE_ANALOG</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; 33, <span class="comment">// CROSS_ANALOG</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; 34, <span class="comment">// SQUARE_ANALOG</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; 0, 0, <span class="comment">// Skip PS and MOVE</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Playstation Move Controller</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; 15 <span class="comment">// T_ANALOG - Both at byte 14 (last reading) and byte 15 (current reading)</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;};</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967"> 115</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a> {</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743"> 117</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106"> 119</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8"> 121</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82"> 124</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a"> 126</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c"> 128</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094"> 131</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b"> 133</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a"> 141</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> {</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb"> 143</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb">aX</a> = 50,</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd"> 145</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd">aY</a> = 52,</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc"> 147</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc">aZ</a> = 54,</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675"> 149</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675">gZ</a> = 56,</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7"> 152</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7">aXmove</a> = 28,</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f"> 154</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f">aZmove</a> = 30,</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199"> 156</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199">aYmove</a> = 32,</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731"> 159</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731">gXmove</a> = 40,</div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d"> 161</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a> = 42,</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91"> 163</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91">gYmove</a> = 44,</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f"> 166</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f">tempMove</a> = 46,</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68"> 169</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a> = 47,</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503"> 171</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a> = 49,</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78"> 173</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78">mYmove</a> = 50,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1"> 177</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> {</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47"> 178</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a> = 0x01,</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173"> 179</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173">Roll</a> = 0x02,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;};</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b"> 182</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Note that the location is shiftet 9 when it&#39;s connected via USB</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// Byte location | bit location</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387"> 185</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924"> 186</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773"> 188</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6"> 189</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734"> 190</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089"> 191</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8"> 192</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f"> 193</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679"> 194</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030"> 196</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a"> 197</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c"> 198</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8"> 199</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf"> 200</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb"> 201</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943"> 202</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209"> 204</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10, <span class="comment">//Opperating by USB and rumble is turned on</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1"> 205</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12, <span class="comment">//Opperating by USB and rumble is turned off</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c"> 206</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14, <span class="comment">//Opperating by bluetooth and rumble is turned on</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb"> 207</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16, <span class="comment">//Opperating by bluetooth and rumble is turned off</span></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="line" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231"> 210</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> {</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b"> 211</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,</div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac"> 212</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20,</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;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00200">PS3Enums.h:200</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00189">PS3Enums.h:189</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00205">PS3Enums.h:205</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00117">PS3Enums.h:117</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9c538a78bbc03fb258e1141acdc69a91">gYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00163">PS3Enums.h:163</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173"><div class="ttname"><a href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1a9d80e5f030503ccac779c6491826a173">Roll</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00179">PS3Enums.h:179</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00171">PS3Enums.h:171</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00192">PS3Enums.h:192</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4a"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a></div><div class="ttdeci">Sensor</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a8cf62ee374ebaa5f7582c073e624bc74"><div class="ttname"><a href="_p_s3_enums_8h.html#a8cf62ee374ebaa5f7582c073e624bc74">PS3_REPORT_BUFFER</a></div><div class="ttdeci">const uint8_t PS3_REPORT_BUFFER[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00193">PS3Enums.h:193</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00188">PS3Enums.h:188</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00211">PS3Enums.h:211</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00207">PS3Enums.h:207</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00194">PS3Enums.h:194</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_af83672eccf0c7a02847ce75bc5c55a1a"><div class="ttname"><a href="_p_s3_enums_8h.html#af83672eccf0c7a02847ce75bc5c55a1a">LEDS</a></div><div class="ttdeci">const uint8_t LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_abb19c2ede75659ab3b926996a8a09f2f"><div class="ttname"><a href="_p_s3_enums_8h.html#abb19c2ede75659ab3b926996a8a09f2f">ANALOGBUTTONS</a></div><div class="ttdeci">const uint8_t ANALOGBUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00093">PS3Enums.h:93</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00196">PS3Enums.h:196</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00199">PS3Enums.h:199</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa43025202f119b0f193cbc14c6a3cf59f">tempMove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00166">PS3Enums.h:166</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00169">PS3Enums.h:169</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00126">PS3Enums.h:126</a></div></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9"> 43</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; 0x00, <span class="comment">// OFF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; 0x01, <span class="comment">// LED1</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; 0x02, <span class="comment">// LED2</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; 0x04, <span class="comment">// LED3</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; 0x08, <span class="comment">// LED4</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; 0x09, <span class="comment">// LED5</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; 0x0A, <span class="comment">// LED6</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; 0x0C, <span class="comment">// LED7</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; 0x0D, <span class="comment">// LED8</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; 0x0E, <span class="comment">// LED9</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; 0x0F, <span class="comment">// LED10</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;};</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de"> 63</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; 0x10, <span class="comment">// UP</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; 0x20, <span class="comment">// RIGHT</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; 0x40, <span class="comment">// DOWN</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; 0x80, <span class="comment">// LEFT</span></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; 0x01, <span class="comment">// SELECT</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; 0x08, <span class="comment">// START</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; 0x02, <span class="comment">// L3</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; 0x04, <span class="comment">// R3</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; 0x0100, <span class="comment">// L2</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; 0x0200, <span class="comment">// R2</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; 0x0400, <span class="comment">// L1</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; 0x0800, <span class="comment">// R1</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; 0x1000, <span class="comment">// TRIANGLE</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; 0x2000, <span class="comment">// CIRCLE</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; 0x4000, <span class="comment">// CROSS</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; 0x8000, <span class="comment">// SQUARE</span></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; 0x010000, <span class="comment">// PS</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; 0x080000, <span class="comment">// MOVE - covers 12 bits - we only need to read the top 8</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; 0x100000, <span class="comment">// T - covers 12 bits - we only need to read the top 8</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec"> 94</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; 23, <span class="comment">// UP_ANALOG</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; 24, <span class="comment">// RIGHT_ANALOG</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; 25, <span class="comment">// DOWN_ANALOG</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; 26, <span class="comment">// LEFT_ANALOG</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; 0, 0, 0, 0, <span class="comment">// Skip SELECT, L3, R3 and START</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; 27, <span class="comment">// L2_ANALOG</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; 28, <span class="comment">// R2_ANALOG</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; 29, <span class="comment">// L1_ANALOG</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; 30, <span class="comment">// R1_ANALOG</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; 31, <span class="comment">// TRIANGLE_ANALOG</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; 32, <span class="comment">// CIRCLE_ANALOG</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; 33, <span class="comment">// CROSS_ANALOG</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; 34, <span class="comment">// SQUARE_ANALOG</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; 0, 0, <span class="comment">// Skip PS and MOVE</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Playstation Move Controller</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; 15, <span class="comment">// T_ANALOG - Both at byte 14 (last reading) and byte 15 (current reading)</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;};</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2"> 116</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> {</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"> 118</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a> = 0xFF0000,</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"> 120</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a> = 0xFF00,</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"> 122</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a> = 0xFF,</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"> 125</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a> = 0xFFEB04,</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"> 127</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a> = 0xFFFF,</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"> 129</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a> = 0xFF00FF,</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"> 132</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a> = 0xFFFFFF,</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"> 134</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a> = 0x00,</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51"> 142</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> {</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"> 144</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a> = 50,</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"> 146</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a> = 52,</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"> 148</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a> = 54,</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"> 150</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a> = 56,</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7"> 153</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7">aXmove</a> = 28,</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f"> 155</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f">aZmove</a> = 30,</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199"> 157</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199">aYmove</a> = 32,</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731"> 160</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731">gXmove</a> = 40,</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d"> 162</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a> = 42,</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91"> 164</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91">gYmove</a> = 44,</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f"> 167</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f">tempMove</a> = 46,</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68"> 170</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a> = 47,</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503"> 172</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a> = 49,</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78"> 174</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78">mYmove</a> = 50,</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;</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6"> 178</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> {</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"> 179</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a> = 0x01,</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173"> 180</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173">Roll</a> = 0x02,</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;};</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae"> 183</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// Note that the location is shifted 9 when it&#39;s connected via USB</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// Byte location | bit location</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"> 186</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a> = (38 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"> 187</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a> = (38 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"> 189</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a> = (39 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"> 190</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a> = (39 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"> 191</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a> = (39 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"> 192</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a> = (39 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"> 193</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a> = (39 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"> 194</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a> = (39 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"> 195</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> = (39 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"> 197</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a> = (21 &lt;&lt; 8) | 0xEE,</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"> 198</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a> = (21 &lt;&lt; 8) | 0xF1,</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"> 199</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a> = (21 &lt;&lt; 8) | 0x01,</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"> 200</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a> = (21 &lt;&lt; 8) | 0x02,</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"> 201</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a> = (21 &lt;&lt; 8) | 0x03,</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"> 202</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a> = (21 &lt;&lt; 8) | 0x04,</div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"> 203</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a> = (21 &lt;&lt; 8) | 0x05,</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"> 205</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a> = (40 &lt;&lt; 8) | 0x10, <span class="comment">// Operating by USB and rumble is turned on</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"> 206</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a> = (40 &lt;&lt; 8) | 0x12, <span class="comment">// Operating by USB and rumble is turned off</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"> 207</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a> = (40 &lt;&lt; 8) | 0x14, <span class="comment">// Operating by Bluetooth and rumble is turned on</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"> 208</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a> = (40 &lt;&lt; 8) | 0x16, <span class="comment">// Operating by Bluetooth and rumble is turned off</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;};</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1"> 211</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> {</div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"> 212</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a> = 0x10,</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"> 213</a></span>&#160; <a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a> = 0x20,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;};</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00211">PS3Enums.h:211</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea24c57acd029e3f96fede49402ea01e6f">High</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00194">PS3Enums.h:194</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00187">PS3Enums.h:187</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00148">PS3Enums.h:148</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea429562e406bab9f30a0290306c6abdbf">MoveLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00201">PS3Enums.h:201</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00146">PS3Enums.h:146</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00213">PS3Enums.h:213</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00150">PS3Enums.h:150</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a18b1e66913bf3103ec5f81a124d030">MoveCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00197">PS3Enums.h:197</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00205">PS3Enums.h:205</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea730728c9aac83393ac83f96a8125b8bb">Bluetooth</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00208">PS3Enums.h:208</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a7ff0cc1f92da1e4577a4bf08d0ffbd5a">Lightblue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00127">PS3Enums.h:127</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2abf28513245738599d13e3ce36bd16c82">Yellow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00125">PS3Enums.h:125</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00179">PS3Enums.h:179</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00191">PS3Enums.h:191</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea5a86ae1482947377a116685c168d1773">Charging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00189">PS3Enums.h:189</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00183">PS3Enums.h:183</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a90c28adabe5fc5da343fe8a5ac9ca6de"><div class="ttname"><a href="_p_s3_enums_8h.html#a90c28adabe5fc5da343fe8a5ac9ca6de">PS3_BUTTONS</a></div><div class="ttdeci">const uint32_t PS3_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00063">PS3Enums.h:63</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00191">PS3Enums.h:191</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae37160f3a65bb54a91fb5efb4f971924">Unplugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00186">PS3Enums.h:186</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967abf28513245738599d13e3ce36bd16c82">Yellow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00124">PS3Enums.h:124</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa4a709497e95c67840807ab9e99af2bbc">aZ</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00147">PS3Enums.h:147</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70b"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00182">PS3Enums.h:182</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a></div><div class="ttdeci">Colors</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00115">PS3Enums.h:115</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad0784a3f969fe736e8b271a5a161d106">Green</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00119">PS3Enums.h:119</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba82084136e62c38642986b05419b4e734">Shutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00190">PS3Enums.h:190</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aff4be38428d075a117a5bb7f6209a231"><div class="ttname"><a href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a></div><div class="ttdeci">Rumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00210">PS3Enums.h:210</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac"><div class="ttname"><a href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231a080b52389e532b79b9e48f43ae6086ac">RumbleLow</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00212">PS3Enums.h:212</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00202">PS3Enums.h:202</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa077e283d0c3f06568c20adf90ced0a3f">aZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00154">PS3Enums.h:154</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00197">PS3Enums.h:197</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47"><div class="ttname"><a href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1ae3a34b760fa4a6854f28852e91d8bb47">Pitch</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00178">PS3Enums.h:178</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00201">PS3Enums.h:201</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00198">PS3Enums.h:198</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00143">PS3Enums.h:143</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a0200d2d1b3a7930d0be6c50e7c8ae7d1"><div class="ttname"><a href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a></div><div class="ttdeci">Angle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00177">PS3Enums.h:177</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaee1254b85fe360243299d2041323aa78">mYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00173">PS3Enums.h:173</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ab548046646b36c12aa6ba841de500094">White</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00131">PS3Enums.h:131</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa644a4a198e3cf90bfe918a147cd5d675">gZ</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00149">PS3Enums.h:149</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa832ceb5090692e95e93982849f740de7">aXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00152">PS3Enums.h:152</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa1851ce90f7a3f6acb062de46e78ca731">gXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00159">PS3Enums.h:159</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70baff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00185">PS3Enums.h:185</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00161">PS3Enums.h:161</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967ad8a892b94d3a94ea861543c085ae782b">Off</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00133">PS3Enums.h:133</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aa5c436ac329e20e6b7661152c74e82199">aYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00156">PS3Enums.h:156</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967a627dded106da5a64dd127381890c2f7c">Purble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00128">PS3Enums.h:128</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00206">PS3Enums.h:206</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00121">PS3Enums.h:121</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba71c14aef95c9953673a880e2633fa209">CableRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00204">PS3Enums.h:204</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_af3392eea150ac9151bef45148f0d7895"><div class="ttname"><a href="_p_s3_enums_8h.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a></div><div class="ttdeci">const uint32_t BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00062">PS3Enums.h:62</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4aaba377ea700e0cdf1c61034ef60b259bd">aY</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00145">PS3Enums.h:145</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2a627dded106da5a64dd127381890c2f7c">Purble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00129">PS3Enums.h:129</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea96cc2a0090ada376561406d48d1f2089">Dying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00192">PS3Enums.h:192</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7a352a3dd2accc1dd65a4538c3754ee8">Low</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00193">PS3Enums.h:193</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a077e283d0c3f06568c20adf90ced0a3f">aZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00155">PS3Enums.h:155</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad3163c1fcda01965b692ec2c3122b743">Red</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00118">PS3Enums.h:118</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9ea1d99ce7ddecd65fcb39f30c77037d">gZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00162">PS3Enums.h:162</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad0784a3f969fe736e8b271a5a161d106">Green</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00120">PS3Enums.h:120</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a5c436ac329e20e6b7661152c74e82199">aYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00157">PS3Enums.h:157</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00178">PS3Enums.h:178</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7ba142ed3f585d034f29cc2c36fba0e9"><div class="ttname"><a href="_p_s3_enums_8h.html#a7ba142ed3f585d034f29cc2c36fba0e9">PS3_LEDS</a></div><div class="ttdeci">const uint8_t PS3_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00043">PS3Enums.h:43</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaccd6c38d1a97db0feafc9f88909ce943">MoveFull</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00203">PS3Enums.h:203</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaff01ce39b42bec30132b0fc53c882387">Plugged</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00186">PS3Enums.h:186</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ab548046646b36c12aa6ba841de500094">White</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00132">PS3Enums.h:132</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51aee1254b85fe360243299d2041323aa78">mYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00174">PS3Enums.h:174</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9c538a78bbc03fb258e1141acdc69a91">gYmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00164">PS3Enums.h:164</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ac306dfe7b0e1b3a3e9bb357aa7552dec"><div class="ttname"><a href="_p_s3_enums_8h.html#ac306dfe7b0e1b3a3e9bb357aa7552dec">PS3_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS3_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00094">PS3Enums.h:94</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b4c8ce0561fd9c003a6389d7c6fb503">mZmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00172">PS3Enums.h:172</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1b657addccd19368e17fd15ce396a2eb">aX</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00144">PS3Enums.h:144</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea90b649581a499e75735f153a32dfd71c">MoveShutdown</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00199">PS3Enums.h:199</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea1a36ca9a60a5e244f3404ec0db7b44a1">Cable</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00206">PS3Enums.h:206</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea7719066bf7a360dfe51ccbf81a148bcb">MoveHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00202">PS3Enums.h:202</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea27912f9ea05a45aada21fc375817342c">BluetoothRumble</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00207">PS3Enums.h:207</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a1851ce90f7a3f6acb062de46e78ca731">gXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00160">PS3Enums.h:160</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a9d1f82ecbf55d931c3f49858d86d4d68">mXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00170">PS3Enums.h:170</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeac138cecbd4ef1ba0f9e0ab12440a6df6">NotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00190">PS3Enums.h:190</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2ad8a892b94d3a94ea861543c085ae782b">Off</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00134">PS3Enums.h:134</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a832ceb5090692e95e93982849f740de7">aXmove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00153">PS3Enums.h:153</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2af5e09dd1da4088464f264b7a3118bff8">Blue</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00122">PS3Enums.h:122</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1a5819f165165589a8e65b07bf46c7382b">RumbleHigh</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00212">PS3Enums.h:212</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a4898fccf5d2aa053bc67894aa3627e0f"><div class="ttname"><a href="_p_s3_enums_8h.html#a4898fccf5d2aa053bc67894aa3627e0f">PS3_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define PS3_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00024">PS3Enums.h:24</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea74ec9082d76bf71ae74ad5d948c311f8">MoveDying</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00200">PS3Enums.h:200</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aeaa66a4c4924065859bcee07c677554e2a">MoveNotCharging</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00198">PS3Enums.h:198</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173"><div class="ttname"><a href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6a9d80e5f030503ccac779c6491826a173">Roll</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00180">PS3Enums.h:180</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51a43025202f119b0f193cbc14c6a3cf59f">tempMove</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00167">PS3Enums.h:167</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00195">PS3Enums.h:195</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab8d0298319d2131eb55cd94c07bcf391"><div class="ttname"><a href="_p_s3_enums_8h.html#ab8d0298319d2131eb55cd94c07bcf391">PS3_REPORT_BUFFER</a></div><div class="ttdeci">const uint8_t PS3_REPORT_BUFFER[PS3_REPORT_BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00027">PS3Enums.h:27</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for PS3USB.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -349,7 +349,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -164,30 +164,31 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">getMoveBdaddr</a>(uint8_t *bdaddr);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">getMoveCalibration</a>(uint8_t *data);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> a);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint16_t <a class="code" href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a> a);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777">getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a> a);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> c);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; String <a class="code" href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae">getStatusString</a>();</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">setAllOff</a>();</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">setRumbleOff</a>();</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a> mode);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t <a class="code" href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint16_t <a class="code" href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">getSensor</a>(<a class="code" href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a> a);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">getAngle</a>(<a class="code" href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a> a);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">getStatus</a>(<a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a> c);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">printStatusString</a>();</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">setAllOff</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">setRumbleOff</a>();</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(<a class="code" href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a> mode);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">setRumbleOn</a>(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4"> 224</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>() {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">setLedRaw</a>(0);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(uint8_t r, uint8_t g, uint8_t b);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a> color);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">moveSetBulb</a>(<a class="code" href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a> color);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">moveSetRumble</a>(uint8_t rumble);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e"> 263</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
@ -227,68 +228,68 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> Move_Command(uint8_t *data, uint16_t nbytes);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a4fe61beae6f0e36e4df1ea388bed0783"><div class="ttname"><a href="class_p_s3_u_s_b.html#a4fe61beae6f0e36e4df1ea388bed0783">PS3USB::getSensor</a></div><div class="ttdeci">uint16_t getSensor(Sensor a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00331">PS3USB.cpp:331</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00471">PS3USB.cpp:471</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_ab195293384292950ebc2166bfe360fd1"><div class="ttname"><a href="_p_s3_enums_8h.html#ab195293384292950ebc2166bfe360fd1">RumbleEnum</a></div><div class="ttdeci">RumbleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00211">PS3Enums.h:211</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1448bc51226a9b63f2937630da6bd48f"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1448bc51226a9b63f2937630da6bd48f">PS3USB::getBdaddr</a></div><div class="ttdeci">void getBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00476">PS3USB.cpp:476</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html"><div class="ttname"><a href="class_p_s3_u_s_b.html">PS3USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00058">PS3USB.h:58</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00438">PS3USB.cpp:438</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa0aac5ea016db4cd6736a15e9d6eb41b"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa0aac5ea016db4cd6736a15e9d6eb41b">PS3USB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00439">PS3USB.cpp:439</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a54b2dcaa1e9acef83de2376b50c7ff09"><div class="ttname"><a href="class_p_s3_u_s_b.html#a54b2dcaa1e9acef83de2376b50c7ff09">PS3USB::PS3NavigationConnected</a></div><div class="ttdeci">bool PS3NavigationConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00273">PS3USB.h:273</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac912fd49bd2a415206df7a8c2b672ea4"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac912fd49bd2a415206df7a8c2b672ea4">PS3USB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00224">PS3USB.h:224</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a9628766e5f200cc84b296b071b09ff4a"><div class="ttname"><a href="_p_s3_enums_8h.html#a9628766e5f200cc84b296b071b09ff4a">Sensor</a></div><div class="ttdeci">Sensor</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00141">PS3Enums.h:141</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad50962ff6194746c076084ec0714605a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">PS3USB::setBdaddr</a></div><div class="ttdeci">void setBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00258">PS3USB.cpp:258</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad50962ff6194746c076084ec0714605a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad50962ff6194746c076084ec0714605a">PS3USB::setBdaddr</a></div><div class="ttdeci">void setBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00463">PS3USB.cpp:463</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5750c5448bf1ec73a7669ca2e4799c98"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5750c5448bf1ec73a7669ca2e4799c98">PS3USB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00261">PS3USB.cpp:261</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89df07d76648a48c1f0ef8fd9604c201"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89df07d76648a48c1f0ef8fd9604c201">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00315">PS3USB.cpp:315</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a89aa4233f3eeeb99693a099da527ec28"><div class="ttname"><a href="class_p_s3_u_s_b.html#a89aa4233f3eeeb99693a099da527ec28">PS3USB::PS3MoveConnected</a></div><div class="ttdeci">bool PS3MoveConnected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00271">PS3USB.h:271</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a2d30813a3f5c4729b5c1662832d5a6e0"><div class="ttname"><a href="class_p_s3_u_s_b.html#a2d30813a3f5c4729b5c1662832d5a6e0">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(Button a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00323">PS3USB.cpp:323</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161ae"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161ae">StatusEnum</a></div><div class="ttdeci">StatusEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00183">PS3Enums.h:183</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00536">PS3USB.cpp:536</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6c722086999db05d8abf5f1f26c19f77"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6c722086999db05d8abf5f1f26c19f77">PS3USB::getMoveBdaddr</a></div><div class="ttdeci">void getMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00541">PS3USB.cpp:541</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aaa1e66d7397be6364d4f76749cbaad5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00410">PS3USB.cpp:410</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a6844111657a882b1997ca30d2649bd1c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a6844111657a882b1997ca30d2649bd1c">PS3USB::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00326">PS3USB.cpp:326</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa01170072ec7fd0e557959ea1d79011e"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa01170072ec7fd0e557959ea1d79011e">PS3USB::getSensor</a></div><div class="ttdeci">uint16_t getSensor(SensorEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00334">PS3USB.cpp:334</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aaa1e66d7397be6364d4f76749cbaad5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#aaa1e66d7397be6364d4f76749cbaad5a">PS3USB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00411">PS3USB.cpp:411</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00025">PS3USB.h:25</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0dad8754ff18d0c375c2569791d50876"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0dad8754ff18d0c375c2569791d50876">PS3USB::PS3Connected</a></div><div class="ttdeci">bool PS3Connected</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00265">PS3USB.h:265</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae3f19089341bb545f31b3b01e77131ae"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae3f19089341bb545f31b3b01e77131ae">PS3USB::getStatusString</a></div><div class="ttdeci">String getStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00362">PS3USB.cpp:362</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a09da3bcd33a8dd20d7cb06a70833e448"><div class="ttname"><a href="class_p_s3_u_s_b.html#a09da3bcd33a8dd20d7cb06a70833e448">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(Status c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00358">PS3USB.cpp:358</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9a50f5ed5b41232336cc6d1870795230"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9a50f5ed5b41232336cc6d1870795230">PS3USB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00316">PS3USB.cpp:316</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a04b79c271ca14e1e095c6e305c672627"><div class="ttname"><a href="class_p_s3_u_s_b.html#a04b79c271ca14e1e095c6e305c672627">PS3USB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00093">PS3USB.h:93</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a5dc4e5d1ebd5ca24da7cdc9dd08c94e1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a5dc4e5d1ebd5ca24da7cdc9dd08c94e1">PS3USB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(Rumble mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00419">PS3USB.cpp:419</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad06a172d85adf4ffc54dd8117b0be42e"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad06a172d85adf4ffc54dd8117b0be42e">PS3USB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00263">PS3USB.h:263</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70b"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00182">PS3Enums.h:182</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a55ecd4f2ec2ebfe8d5b0163e4ac2a967"><div class="ttname"><a href="_p_s3_enums_8h.html#a55ecd4f2ec2ebfe8d5b0163e4ac2a967">Colors</a></div><div class="ttdeci">Colors</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00115">PS3Enums.h:115</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00497">PS3USB.cpp:497</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_acbab64f537f092e2fb125f9001f46090"><div class="ttname"><a href="class_p_s3_u_s_b.html#acbab64f537f092e2fb125f9001f46090">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00453">PS3USB.cpp:453</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aff4be38428d075a117a5bb7f6209a231"><div class="ttname"><a href="_p_s3_enums_8h.html#aff4be38428d075a117a5bb7f6209a231">Rumble</a></div><div class="ttdeci">Rumble</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00210">PS3Enums.h:210</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a87db50031f7e265baaa82365c14befae"><div class="ttname"><a href="class_p_s3_u_s_b.html#a87db50031f7e265baaa82365c14befae">PS3USB::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00458">PS3USB.cpp:458</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae9cfdaad3e54dbc271519e22082399c7"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae9cfdaad3e54dbc271519e22082399c7">PS3USB::moveSetBulb</a></div><div class="ttdeci">void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00502">PS3USB.cpp:502</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0083545cb99fb8786e60281fe7a9050d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d">PS3USB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00046">PS3USB.cpp:46</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac7adc7365bb45d15c37e22f26f012498"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00403">PS3USB.cpp:403</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a1328a3f017f8d010cd0559c084981021"><div class="ttname"><a href="class_p_s3_u_s_b.html#a1328a3f017f8d010cd0559c084981021">PS3USB::printStatusString</a></div><div class="ttdeci">void printStatusString()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00365">PS3USB.cpp:365</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac7adc7365bb45d15c37e22f26f012498"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac7adc7365bb45d15c37e22f26f012498">PS3USB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00404">PS3USB.cpp:404</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a7c7824a10a9ffa8fea85602fcf4d84e6"><div class="ttname"><a href="_p_s3_enums_8h.html#a7c7824a10a9ffa8fea85602fcf4d84e6">AngleEnum</a></div><div class="ttdeci">AngleEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00178">PS3Enums.h:178</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00037">PS3USB.h:37</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a0200d2d1b3a7930d0be6c50e7c8ae7d1"><div class="ttname"><a href="_p_s3_enums_8h.html#a0200d2d1b3a7930d0be6c50e7c8ae7d1">Angle</a></div><div class="ttdeci">Angle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00177">PS3Enums.h:177</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_a00d5030559c481763282483889597d51"><div class="ttname"><a href="_p_s3_enums_8h.html#a00d5030559c481763282483889597d51">SensorEnum</a></div><div class="ttdeci">SensorEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00142">PS3Enums.h:142</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a0de554815afcb66f57d8ac0045f19f2c"><div class="ttname"><a href="class_p_s3_u_s_b.html#a0de554815afcb66f57d8ac0045f19f2c">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00330">PS3USB.cpp:330</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_aa1873f41ae0da7c4568cfb7517560c48"><div class="ttname"><a href="class_p_s3_u_s_b.html#aa1873f41ae0da7c4568cfb7517560c48">PS3USB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00277">PS3USB.h:277</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00510">PS3USB.cpp:510</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00268">PS3USB.cpp:268</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_aac6fa7b0395b95cc528deaad0ce884a2"><div class="ttname"><a href="_p_s3_enums_8h.html#aac6fa7b0395b95cc528deaad0ce884a2">ColorsEnum</a></div><div class="ttdeci">ColorsEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00116">PS3Enums.h:116</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ae5c5316b4c8dae5927b2a2721a28f6c0"><div class="ttname"><a href="class_p_s3_u_s_b.html#ae5c5316b4c8dae5927b2a2721a28f6c0">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(AngleEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00338">PS3USB.cpp:338</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a66d542c2cec73cefb3cdda36ff080e1a"><div class="ttname"><a href="class_p_s3_u_s_b.html#a66d542c2cec73cefb3cdda36ff080e1a">PS3USB::moveSetRumble</a></div><div class="ttdeci">void moveSetRumble(uint8_t rumble)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00515">PS3USB.cpp:515</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9068e2a036012614c0db163830cbcf00"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9068e2a036012614c0db163830cbcf00">PS3USB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00271">PS3USB.cpp:271</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_afc242b8a1b867f79c49ad78e3a47b37f"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#afc242b8a1b867f79c49ad78e3a47b37f">PS3MOVE_PID</a></div><div class="ttdeci">#define PS3MOVE_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00039">PS3USB.h:39</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a168ab47b14a95d7cf8066d553a9cb862"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a168ab47b14a95d7cf8066d553a9cb862">PS3_MAX_ENDPOINTS</a></div><div class="ttdeci">#define PS3_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00048">PS3USB.h:48</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a394dbb0a59b587210e5958f08dac48f1"><div class="ttname"><a href="class_p_s3_u_s_b.html#a394dbb0a59b587210e5958f08dac48f1">PS3USB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[PS3_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00281">PS3USB.h:281</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a77f44b6007cc735c47bdeaf672c7e464"><div class="ttname"><a href="class_p_s3_u_s_b.html#a77f44b6007cc735c47bdeaf672c7e464">PS3USB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(RumbleEnum mode)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00420">PS3USB.cpp:420</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ababb6cbf8297581b27400f9a39d75e5a"><div class="ttname"><a href="class_p_s3_u_s_b.html#ababb6cbf8297581b27400f9a39d75e5a">PS3USB::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00111">PS3USB.h:111</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3ad10dc81cfca1bdeb2f1310ddf4419d"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3ad10dc81cfca1bdeb2f1310ddf4419d">PS3USB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00449">PS3USB.cpp:449</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a54903b410722a45f8246653cd4d00632"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a54903b410722a45f8246653cd4d00632">PS3NAVIGATION_PID</a></div><div class="ttdeci">#define PS3NAVIGATION_PID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00038">PS3USB.h:38</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_a5bb06f989db583d290ba79642d37c514"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#a5bb06f989db583d290ba79642d37c514">PS3_VID</a></div><div class="ttdeci">#define PS3_VID</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00036">PS3USB.h:36</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3f43df159277003acdf7dd107bda27fd"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3f43df159277003acdf7dd107bda27fd">PS3USB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00279">PS3USB.h:279</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00520">PS3USB.cpp:520</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a2b0f391b8ae3e80b18cf9108c3e8f7e3"><div class="ttname"><a href="class_p_s3_u_s_b.html#a2b0f391b8ae3e80b18cf9108c3e8f7e3">PS3USB::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00327">PS3USB.cpp:327</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a9b9e5a3a3e80957f47f86f4155fee777"><div class="ttname"><a href="class_p_s3_u_s_b.html#a9b9e5a3a3e80957f47f86f4155fee777">PS3USB::getAngle</a></div><div class="ttdeci">double getAngle(Angle a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00335">PS3USB.cpp:335</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a44c4bff09064a09ef97c7bb6b8c0810b"><div class="ttname"><a href="class_p_s3_u_s_b.html#a44c4bff09064a09ef97c7bb6b8c0810b">PS3USB::setLedOn</a></div><div class="ttdeci">void setLedOn(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00448">PS3USB.cpp:448</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad1de9af6fb34f4cff6c1ed0af21b0141"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad1de9af6fb34f4cff6c1ed0af21b0141">PS3USB::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00312">PS3USB.cpp:312</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a3fccc7ef5ac5c414ef8ebcd2e2cdfc80"><div class="ttname"><a href="class_p_s3_u_s_b.html#a3fccc7ef5ac5c414ef8ebcd2e2cdfc80">PS3USB::setMoveBdaddr</a></div><div class="ttdeci">void setMoveBdaddr(uint8_t *bdaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00525">PS3USB.cpp:525</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac919404d4caf4625467756272f8d5502"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac919404d4caf4625467756272f8d5502">PS3USB::PS3USB</a></div><div class="ttdeci">PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00023">PS3USB.cpp:23</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00546">PS3USB.cpp:546</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ab6e97f59f4a62e52cf54cdd302679cd9"><div class="ttname"><a href="class_p_s3_u_s_b.html#ab6e97f59f4a62e52cf54cdd302679cd9">PS3USB::getMoveCalibration</a></div><div class="ttdeci">void getMoveCalibration(uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00551">PS3USB.cpp:551</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ad0887b415c3ba180789781a713d98be8"><div class="ttname"><a href="class_p_s3_u_s_b.html#ad0887b415c3ba180789781a713d98be8">PS3USB::getStatus</a></div><div class="ttdeci">bool getStatus(StatusEnum c)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00361">PS3USB.cpp:361</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_a02a5b0244665d5a790d1020e51c94479"><div class="ttname"><a href="class_p_s3_u_s_b.html#a02a5b0244665d5a790d1020e51c94479">PS3USB::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00101">PS3USB.h:101</a></div></div>
<div class="ttc" id="class_p_s3_u_s_b_html_ac22875ff006c68daad6f688551f5e6d5"><div class="ttname"><a href="class_p_s3_u_s_b.html#ac22875ff006c68daad6f688551f5e6d5">PS3USB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8cpp_source.html#l00319">PS3USB.cpp:319</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

184
_p_s4_b_t_8cpp.html Normal file
View file

@ -0,0 +1,184 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: PS4BT.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">USB Host Shield 2.0
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e5fbe6d2783ccd4c93c7856d92d7be6e.html">GitHub</a></li><li class="navelem"><a class="el" href="dir_397a095372f04465e811d0ee219bbf8f.html">USB_Host_Shield_2.0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">PS4BT.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_p_s4_b_t_8h_source.html">PS4BT.h</a>&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4BT.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_b_t_8cpp__incl.png" border="0" usemap="#_p_s4_b_t_8cpp" alt=""/></div>
<map name="_p_s4_b_t_8cpp" id="_p_s4_b_t_8cpp">
<area shape="rect" id="node2" href="_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="134,83,207,111"/><area shape="rect" id="node3" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="76,161,148,189"/><area shape="rect" id="node9" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="180,161,279,189"/><area shape="rect" id="node4" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,315,64,343"/><area shape="rect" id="node6" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,238,149,266"/><area shape="rect" id="node5" href="_usb_8h.html" title="Usb.h" alt="" coords="57,470,113,498"/><area shape="rect" id="node7" href="hid_8h.html" title="hid.h" alt="" coords="88,315,137,343"/><area shape="rect" id="node8" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,393,223,421"/><area shape="rect" id="node10" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="174,238,303,266"/></map>
</div>
</div>
<p><a href="_p_s4_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="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a7e95303156f31f965a09cc2d3877b524"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a> []</td></tr>
<tr class="separator:a7e95303156f31f965a09cc2d3877b524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4041fcf71dc93ce9c67e6329501f3579"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s4_b_t_8cpp.html#a4041fcf71dc93ce9c67e6329501f3579">PS4_ANALOG_BUTTONS</a> []</td></tr>
<tr class="separator:a4041fcf71dc93ce9c67e6329501f3579"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a7e95303156f31f965a09cc2d3877b524"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t PS4_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a>, </div>
<div class="line"> <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a>, </div>
<div class="line"> <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a>, </div>
<div class="line"> <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a>, </div>
<div class="line"></div>
<div class="line"> 0x0C, </div>
<div class="line"> 0x0D, </div>
<div class="line"> 0x0E, </div>
<div class="line"> 0x0F, </div>
<div class="line"></div>
<div class="line"> 0x0A, </div>
<div class="line"> 0x0B, </div>
<div class="line"> 0x08, </div>
<div class="line"> 0x09, </div>
<div class="line"></div>
<div class="line"> 0x07, </div>
<div class="line"> 0x06, </div>
<div class="line"> 0x05, </div>
<div class="line"> 0x04, </div>
<div class="line"></div>
<div class="line"> 0x10, </div>
<div class="line"> 0x11, </div>
<div class="line">}</div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00029">PS4BT.h:29</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00031">PS4BT.h:31</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00027">PS4BT.h:27</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00025">PS4BT.h:25</a></div></div>
</div><!-- fragment --><p>Buttons on the controller </p>
<p>Definition at line <a class="el" href="_p_s4_b_t_8cpp_source.html#l00024">24</a> of file <a class="el" href="_p_s4_b_t_8cpp_source.html">PS4BT.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a4041fcf71dc93ce9c67e6329501f3579"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t PS4_ANALOG_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> 0, 0, 0, 0, 0, 0, 0, 0, </div>
<div class="line"> 0, </div>
<div class="line"> 1, </div>
<div class="line">}</div>
</div><!-- fragment --><p>Analog buttons on the controller </p>
<p>Definition at line <a class="el" href="_p_s4_b_t_8cpp_source.html#l00050">50</a> of file <a class="el" href="_p_s4_b_t_8cpp_source.html">PS4BT.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.6
</small></address>
</body>
</html>

11
_p_s4_b_t_8cpp__incl.map Normal file
View file

@ -0,0 +1,11 @@
<map id="PS4BT.cpp" name="PS4BT.cpp">
<area shape="rect" id="node2" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="134,83,207,111"/>
<area shape="rect" id="node3" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="76,161,148,189"/>
<area shape="rect" id="node9" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="180,161,279,189"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,315,64,343"/>
<area shape="rect" id="node6" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,238,149,266"/>
<area shape="rect" id="node5" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,470,113,498"/>
<area shape="rect" id="node7" href="$hid_8h.html" title="hid.h" alt="" coords="88,315,137,343"/>
<area shape="rect" id="node8" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,393,223,421"/>
<area shape="rect" id="node10" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="174,238,303,266"/>
</map>

1
_p_s4_b_t_8cpp__incl.md5 Normal file
View file

@ -0,0 +1 @@
de3836781e278adb9d496ef43b7194ea

BIN
_p_s4_b_t_8cpp__incl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

240
_p_s4_b_t_8cpp_source.html Normal file
View file

@ -0,0 +1,240 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: PS4BT.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">USB Host Shield 2.0
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e5fbe6d2783ccd4c93c7856d92d7be6e.html">GitHub</a></li><li class="navelem"><a class="el" href="dir_397a095372f04465e811d0ee219bbf8f.html">USB_Host_Shield_2.0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">PS4BT.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_p_s4_b_t_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (C) 2014 Kristian Lauszus, TKJ Electronics. All rights reserved.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> This software may be distributed and modified under the terms of the GNU</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> General Public License version 2 (GPL2) as published by the Free Software</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> Foundation and appearing in the file GPL2.TXT included in the packaging of</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> this file. Please note that GPL2 Section 2[b] requires that all works based</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> on this software must also be made publicly available under the terms of</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> the GPL2 (&quot;Copyleft&quot;).</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> Contact information</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> -------------------</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> Kristian Lauszus, TKJ Electronics</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> Web : http://www.tkjelectronics.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> e-mail : kristianl@tkjelectronics.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s4_b_t_8h.html">PS4BT.h</a>&quot;</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="comment">// To enable serial debugging see &quot;settings.h&quot;</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 PS4 Controller</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524"> 24</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a>, <span class="comment">// UP</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a>, <span class="comment">// RIGHT</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a>, <span class="comment">// DOWN</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a>, <span class="comment">// LEFT</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; 0x0C, <span class="comment">// SHARE</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; 0x0D, <span class="comment">// OPTIONS</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; 0x0E, <span class="comment">// L3</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; 0x0F, <span class="comment">// R3</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; 0x0A, <span class="comment">// L2</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; 0x0B, <span class="comment">// R2</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; 0x08, <span class="comment">// L1</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; 0x09, <span class="comment">// R1</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; 0x07, <span class="comment">// TRIANGLE</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; 0x06, <span class="comment">// CIRCLE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; 0x05, <span class="comment">// CROSS</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; 0x04, <span class="comment">// SQUARE</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; 0x10, <span class="comment">// PS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; 0x11, <span class="comment">// KEYPAD</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8cpp.html#a4041fcf71dc93ce9c67e6329501f3579"> 50</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_p_s4_b_t_8cpp.html#a4041fcf71dc93ce9c67e6329501f3579">PS4_ANALOG_BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; 0, 0, 0, 0, 0, 0, 0, 0, <span class="comment">// Skip UP_ANALOG, RIGHT_ANALOG, DOWN_ANALOG, LEFT_ANALOG, SELECT, L3, R3 and START</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; 0, <span class="comment">// L2_ANALOG</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; 1, <span class="comment">// R2_ANALOG</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keywordtype">bool</span> PS4BT::checkDpad(<a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> ps4Buttons, <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> b) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> ps4Buttons.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> == b;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a1a7935eca7794b2fb0da4a0b175a1974"> 60</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_b_t.html#a1a7935eca7794b2fb0da4a0b175a1974">PS4BT::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span> (b &lt; 4) <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> checkDpad(ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>, (<a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a>)button);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint8_t index = button &lt; 8 ? 0 : button &lt; 16 ? 1 : 2;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint8_t mask = (1 &lt;&lt; (button - 8 * index));</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp; mask;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a7019f43cfd9ef4860dea0ffb5b580254"> 71</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_p_s4_b_t.html#a7019f43cfd9ef4860dea0ffb5b580254">PS4BT::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span> (b &lt; 4) { <span class="comment">// Dpad</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (checkDpad(buttonClickState, (<a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a>)button)) {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint8_t index = button &lt; 8 ? 0 : button &lt; 16 ? 1 : 2;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint8_t mask = (1 &lt;&lt; (button - 8 * index));</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">bool</span> click = buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp; mask;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[index] &amp;= ~mask; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#ad9668449b50b4e28a2f269c04f628af8"> 89</a></span>&#160;uint8_t <a class="code" href="class_p_s4_b_t.html#ad9668449b50b4e28a2f269c04f628af8">PS4BT::getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[pgm_read_byte(&amp;<a class="code" href="_p_s4_b_t_8cpp.html#a4041fcf71dc93ce9c67e6329501f3579">PS4_ANALOG_BUTTONS</a>[(uint8_t)a])]);</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;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a889b1b544fc439b2bcc7a041272701da"> 93</a></span>&#160;uint8_t <a class="code" href="class_p_s4_b_t.html#a889b1b544fc439b2bcc7a041272701da">PS4BT::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[(uint8_t)a];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a2d0d9b579a008f681471d595843af8d1"> 97</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a2d0d9b579a008f681471d595843af8d1">PS4BT::Parse</a>(<a class="code" href="class_h_i_d.html">HID</a> *hid, <span class="keywordtype">bool</span> is_rpt_id, uint8_t len, uint8_t *buf) {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (len == <span class="keyword">sizeof</span>(<a class="code" href="struct_p_s4_data.html">PS4Data</a>) &amp;&amp; buf) {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; memcpy(&amp;ps4Data, buf, len);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>); i++) {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> (ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] != oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i]) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] &amp; ~oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i]; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i];</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span> (i == 0)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a>; <span class="comment">// The DPAD buttons does not set the different bits, but set a value corresponding to the buttons pressed</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; len; i++) {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; D_PrintHex&lt;uint8_t &gt; (buf[i], 0x80);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</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="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00033">PS4BT.h:33</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa004cc456c79269dec99a9eed667484d"><div class="ttname"><a href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">PS4Data::hatValue</a></div><div class="ttdeci">uint8_t hatValue[4]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00061">PS4BT.h:61</a></div></div>
<div class="ttc" id="struct_p_s4_data_html"><div class="ttname"><a href="struct_p_s4_data.html">PS4Data</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00060">PS4BT.h:60</a></div></div>
<div class="ttc" id="_p_s4_b_t_8cpp_html_a4041fcf71dc93ce9c67e6329501f3579"><div class="ttname"><a href="_p_s4_b_t_8cpp.html#a4041fcf71dc93ce9c67e6329501f3579">PS4_ANALOG_BUTTONS</a></div><div class="ttdeci">const uint8_t PS4_ANALOG_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00050">PS4BT.cpp:50</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a2d0d9b579a008f681471d595843af8d1"><div class="ttname"><a href="class_p_s4_b_t.html#a2d0d9b579a008f681471d595843af8d1">PS4BT::Parse</a></div><div class="ttdeci">virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00097">PS4BT.cpp:97</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00029">PS4BT.h:29</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="_p_s4_b_t_8cpp_html_a7e95303156f31f965a09cc2d3877b524"><div class="ttname"><a href="_p_s4_b_t_8cpp.html#a7e95303156f31f965a09cc2d3877b524">PS4_BUTTONS</a></div><div class="ttdeci">const uint8_t PS4_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00024">PS4BT.cpp:24</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a1a7935eca7794b2fb0da4a0b175a1974"><div class="ttname"><a href="class_p_s4_b_t.html#a1a7935eca7794b2fb0da4a0b175a1974">PS4BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00060">PS4BT.cpp:60</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a889b1b544fc439b2bcc7a041272701da"><div class="ttname"><a href="class_p_s4_b_t.html#a889b1b544fc439b2bcc7a041272701da">PS4BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00093">PS4BT.cpp:93</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a0cb061ca058b493218c01eb1ada1af00"><div class="ttname"><a href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">PS4Buttons::val</a></div><div class="ttdeci">uint8_t val[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00057">PS4BT.h:57</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aad2133de0113cee402cda4a8c7e8b6a5"><div class="ttname"><a href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">PS4Data::trigger</a></div><div class="ttdeci">uint8_t trigger[2]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00063">PS4BT.h:63</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00031">PS4BT.h:31</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html"><div class="ttname"><a href="union_p_s4_buttons.html">PS4Buttons</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00036">PS4BT.h:36</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99e2971b4e511a8d1bb718408f559a92"><div class="ttname"><a href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">PS4Buttons::dpad</a></div><div class="ttdeci">uint8_t dpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00038">PS4BT.h:38</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00027">PS4BT.h:27</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00025">PS4BT.h:25</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_ad9668449b50b4e28a2f269c04f628af8"><div class="ttname"><a href="class_p_s4_b_t.html#ad9668449b50b4e28a2f269c04f628af8">PS4BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00089">PS4BT.cpp:89</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html"><div class="ttname"><a href="_p_s4_b_t_8h.html">PS4BT.h</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00062">PS4BT.h:62</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a7019f43cfd9ef4860dea0ffb5b580254"><div class="ttname"><a href="class_p_s4_b_t.html#a7019f43cfd9ef4860dea0ffb5b580254">PS4BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00071">PS4BT.cpp:71</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a></div><div class="ttdeci">DPADEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00024">PS4BT.h:24</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>

184
_p_s4_b_t_8h.html Normal file
View file

@ -0,0 +1,184 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: PS4BT.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">USB Host Shield 2.0
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e5fbe6d2783ccd4c93c7856d92d7be6e.html">GitHub</a></li><li class="navelem"><a class="el" href="dir_397a095372f04465e811d0ee219bbf8f.html">USB_Host_Shield_2.0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">PS4BT.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_b_t_h_i_d_8h_source.html">BTHID.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_p_s3_enums_8h_source.html">PS3Enums.h</a>&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for PS4BT.h:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_b_t_8h__incl.png" border="0" usemap="#_p_s4_b_t_8h" alt=""/></div>
<map name="_p_s4_b_t_8h" id="_p_s4_b_t_8h">
<area shape="rect" id="node2" href="_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="76,83,148,111"/><area shape="rect" id="node8" href="_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="180,83,279,111"/><area shape="rect" id="node3" href="_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/><area shape="rect" id="node5" href="hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/><area shape="rect" id="node4" href="_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/><area shape="rect" id="node6" href="hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/><area shape="rect" id="node7" href="hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/><area shape="rect" id="node9" href="controller_enums_8h.html" title="controllerEnums.h" alt="" coords="174,161,303,189"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_p_s4_b_t_8h__dep__incl.png" border="0" usemap="#_p_s4_b_t_8hdep" alt=""/></div>
<map name="_p_s4_b_t_8hdep" id="_p_s4_b_t_8hdep">
<area shape="rect" id="node2" href="_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="4,83,91,111"/></map>
</div>
</div>
<p><a href="_p_s4_b_t_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="union_p_s4_buttons.html">PS4Buttons</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_s4_data.html">PS4Data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_s4_b_t.html">PS4BT</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3eca256e8b59574c290177d7df302a62"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> { <br/>
&#160;&#160;<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a> = 0x0,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a> = 0x1,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a> = 0x2,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a> = 0x3,
<br/>
&#160;&#160;<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a> = 0x4,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a> = 0x5,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a> = 0x6,
<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a> = 0x7,
<br/>
&#160;&#160;<a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a> = 0x8
<br/>
}</td></tr>
<tr class="separator:a3eca256e8b59574c290177d7df302a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a3eca256e8b59574c290177d7df302a62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"></a>DPAD_UP</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"></a>DPAD_UP_RIGHT</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"></a>DPAD_RIGHT</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"></a>DPAD_RIGHT_DOWN</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"></a>DPAD_DOWN</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"></a>DPAD_DOWN_LEFT</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"></a>DPAD_LEFT</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"></a>DPAD_LEFT_UP</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"></a>DPAD_OFF</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="_p_s4_b_t_8h_source.html#l00024">24</a> of file <a class="el" href="_p_s4_b_t_8h_source.html">PS4BT.h</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.6
</small></address>
</body>
</html>

View file

@ -0,0 +1,3 @@
<map id="PS4BT.h" name="PS4BT.h">
<area shape="rect" id="node2" href="$_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="4,83,91,111"/>
</map>

View file

@ -0,0 +1 @@
82347198cb38622e6ed67d96408c604d

BIN
_p_s4_b_t_8h__dep__incl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

10
_p_s4_b_t_8h__incl.map Normal file
View file

@ -0,0 +1,10 @@
<map id="PS4BT.h" name="PS4BT.h">
<area shape="rect" id="node2" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="76,83,148,111"/>
<area shape="rect" id="node8" href="$_p_s3_enums_8h.html" title="PS3Enums.h" alt="" coords="180,83,279,111"/>
<area shape="rect" id="node3" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="5,238,64,266"/>
<area shape="rect" id="node5" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="74,161,149,189"/>
<area shape="rect" id="node4" href="$_usb_8h.html" title="Usb.h" alt="" coords="57,393,113,421"/>
<area shape="rect" id="node6" href="$hid_8h.html" title="hid.h" alt="" coords="88,238,137,266"/>
<area shape="rect" id="node7" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="123,315,223,343"/>
<area shape="rect" id="node9" href="$controller_enums_8h.html" title="controllerEnums.h" alt="" coords="174,161,303,189"/>
</map>

1
_p_s4_b_t_8h__incl.md5 Normal file
View file

@ -0,0 +1 @@
99e5f1ed9603881ee572c3d90866b742

BIN
_p_s4_b_t_8h__incl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

287
_p_s4_b_t_8h_source.html Normal file
View file

@ -0,0 +1,287 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: PS4BT.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="imageStyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">USB Host Shield 2.0
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e5fbe6d2783ccd4c93c7856d92d7be6e.html">GitHub</a></li><li class="navelem"><a class="el" href="dir_397a095372f04465e811d0ee219bbf8f.html">USB_Host_Shield_2.0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">PS4BT.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_p_s4_b_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (C) 2014 Kristian Lauszus, TKJ Electronics. All rights reserved.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> This software may be distributed and modified under the terms of the GNU</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> General Public License version 2 (GPL2) as published by the Free Software</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> Foundation and appearing in the file GPL2.TXT included in the packaging of</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> this file. Please note that GPL2 Section 2[b] requires that all works based</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> on this software must also be made publicly available under the terms of</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> the GPL2 (&quot;Copyleft&quot;).</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> Contact information</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> -------------------</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> Kristian Lauszus, TKJ Electronics</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> Web : http://www.tkjelectronics.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> e-mail : kristianl@tkjelectronics.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _ps4bt_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _ps4bt_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_h_i_d_8h.html">BTHID.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_p_s3_enums_8h.html">PS3Enums.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62"> 24</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> {</div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"> 25</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a> = 0x0,</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"> 26</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a> = 0x1,</div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"> 27</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a> = 0x2,</div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"> 28</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a> = 0x3,</div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"> 29</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a> = 0x4,</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"> 30</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a> = 0x5,</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"> 31</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a> = 0x6,</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"> 32</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a> = 0x7,</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"> 33</a></span>&#160; <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a> = 0x8,</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;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html"> 36</a></span>&#160;<span class="keyword">union </span><a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92"> 38</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> : 4;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a84eb7076098ec3135bdc440a279fde50"> 39</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a84eb7076098ec3135bdc440a279fde50">square</a> : 1;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a1163dc3517b1c27093b7cdd597eaa9fd"> 40</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a1163dc3517b1c27093b7cdd597eaa9fd">cross</a> : 1;</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a95340b24c0846c778d2d8d0c983f4cdb"> 41</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a95340b24c0846c778d2d8d0c983f4cdb">circle</a> : 1;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a72d07e9a47b1b75474e152b6aaeae6e5"> 42</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a72d07e9a47b1b75474e152b6aaeae6e5">triangle</a> : 1;</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"><a class="line" href="union_p_s4_buttons.html#a3488f850c1de8d49a9dc932f1575e5e4"> 44</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a3488f850c1de8d49a9dc932f1575e5e4">l1</a> : 1;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#aba0cb76ee82bd0ebe9872aa7bcbffac6"> 45</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#aba0cb76ee82bd0ebe9872aa7bcbffac6">r1</a> : 1;</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a99b88dcb511243ea0c046cac1f5633ec"> 46</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a99b88dcb511243ea0c046cac1f5633ec">l2</a> : 1;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a416642ff357b1313825fe94e0491b60e"> 47</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a416642ff357b1313825fe94e0491b60e">r2</a> : 1;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#adf2ff3e6e4050070a68e90a83be81e92"> 48</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#adf2ff3e6e4050070a68e90a83be81e92">share</a> : 1;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a27f1b87f473ace3a4465ae999858357b"> 49</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a27f1b87f473ace3a4465ae999858357b">options</a> : 1;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#ab8835f04d0c0c5e630d685ec2fd54e80"> 50</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#ab8835f04d0c0c5e630d685ec2fd54e80">l3</a> : 1;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a09805f3bcc362c410d7897792599d61d"> 51</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a09805f3bcc362c410d7897792599d61d">r3</a> : 1;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9"> 53</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9">ps</a> : 1;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a0923bb3148f730c2823853d368576917"> 54</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a0923bb3148f730c2823853d368576917">keypad</a> : 1;</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a7cd7d1ebbe71e0612e7f754e06adc5ef"> 55</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a7cd7d1ebbe71e0612e7f754e06adc5ef">dummy</a> : 6;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00"> 57</a></span>&#160; uint8_t <a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[3];</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_p_s4_data.html">PS4Data</a> {</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d"> 61</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[4];</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3"> 62</a></span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> <a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5"> 63</a></span>&#160; uint8_t <a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[2];</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_s4_b_t.html">PS4BT</a> : <span class="keyword">public</span> <a class="code" href="class_h_i_d_report_parser.html">HIDReportParser</a> {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#abf535806616e6cacf6707dc96279f1c1"> 73</a></span>&#160; <a class="code" href="class_p_s4_b_t.html#abf535806616e6cacf6707dc96279f1c1">PS4BT</a>(<a class="code" href="class_b_t_h_i_d.html">BTHID</a> *p) :</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; pBthid(p) {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; pBthid-&gt;<a class="code" href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">SetReportParser</a>(<a class="code" href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_p_s4_b_t.html#a60d9bd17b809303cf2840f2892698bd0">Reset</a>();</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; };</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a2d0d9b579a008f681471d595843af8d1">Parse</a>(<a class="code" href="class_h_i_d.html">HID</a> *hid, <span class="keywordtype">bool</span> is_rpt_id, uint8_t len, uint8_t *buf);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_b_t.html#a1a7935eca7794b2fb0da4a0b175a1974">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_b_t.html#a7019f43cfd9ef4860dea0ffb5b580254">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint8_t <a class="code" href="class_p_s4_b_t.html#ad9668449b50b4e28a2f269c04f628af8">getAnalogButton</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> a);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; uint8_t <a class="code" href="class_p_s4_b_t.html#a889b1b544fc439b2bcc7a041272701da">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a08a857b8533e59f6eb872e4c8f727405"> 115</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_p_s4_b_t.html#a08a857b8533e59f6eb872e4c8f727405">connected</a>() {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (pBthid)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> pBthid-&gt;<a class="code" href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">connected</a>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; };</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#abe83edc43707665dc9c1233d824dcae4"> 122</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#abe83edc43707665dc9c1233d824dcae4">disconnect</a>() {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (pBthid)</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; pBthid-&gt;<a class="code" href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">disconnect</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; };</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a61f45e4cc254de9f4437d3e9866a24e9"> 128</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a61f45e4cc254de9f4437d3e9866a24e9">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (pBthid)</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; pBthid-&gt;<a class="code" href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">pair</a>();</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a60d9bd17b809303cf2840f2892698bd0"> 133</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a60d9bd17b809303cf2840f2892698bd0">Reset</a>() {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint8_t i;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span> (0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>); i++)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">hatValue</a>[i] = 127;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; for (0; i &lt; <span class="keyword">sizeof</span>(<a class="code" href="union_p_s4_buttons.html">PS4Buttons</a>); i++) {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = 0;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">val</a>[i] = 0;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">for</span> (0; i &lt; <span class="keyword">sizeof</span>(ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>); i++)</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">trigger</a>[i] = 0;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; ps4Data.<a class="code" href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">btn</a>.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; oldButtonState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; buttonClickState.<a class="code" href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">dpad</a> = <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9"> 153</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; };</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> onInit() {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_p_s4_b_t.html#a60d9bd17b809303cf2840f2892698bd0">Reset</a>();</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</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; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></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; <span class="keywordtype">bool</span> checkDpad(<a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> ps4Buttons, <a class="code" href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a> b); <span class="comment">// Used to check PS4 DPAD buttons</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_b_t_h_i_d.html">BTHID</a> *pBthid; <span class="comment">// Pointer to BTHID instance</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="struct_p_s4_data.html">PS4Data</a> ps4Data;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="union_p_s4_buttons.html">PS4Buttons</a> oldButtonState, buttonClickState;</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">#endif</span></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aeb5da32679ab2abc4001f04d5f8c7044">DPAD_OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00033">PS4BT.h:33</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aa004cc456c79269dec99a9eed667484d"><div class="ttname"><a href="struct_p_s4_data.html#aa004cc456c79269dec99a9eed667484d">PS4Data::hatValue</a></div><div class="ttdeci">uint8_t hatValue[4]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00061">PS4BT.h:61</a></div></div>
<div class="ttc" id="struct_p_s4_data_html"><div class="ttname"><a href="struct_p_s4_data.html">PS4Data</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00060">PS4BT.h:60</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_aba0cb76ee82bd0ebe9872aa7bcbffac6"><div class="ttname"><a href="union_p_s4_buttons.html#aba0cb76ee82bd0ebe9872aa7bcbffac6">PS4Buttons::r1</a></div><div class="ttdeci">uint8_t r1</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00045">PS4BT.h:45</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a2d0d9b579a008f681471d595843af8d1"><div class="ttname"><a href="class_p_s4_b_t.html#a2d0d9b579a008f681471d595843af8d1">PS4BT::Parse</a></div><div class="ttdeci">virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00097">PS4BT.cpp:97</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a08a857b8533e59f6eb872e4c8f727405"><div class="ttname"><a href="class_p_s4_b_t.html#a08a857b8533e59f6eb872e4c8f727405">PS4BT::connected</a></div><div class="ttdeci">bool connected()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00115">PS4BT.h:115</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ab3a81823a1d8805383146a6baad6ccc4"><div class="ttname"><a href="class_b_t_h_i_d.html#ab3a81823a1d8805383146a6baad6ccc4">BTHID::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00093">BTHID.h:93</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_adf2ff3e6e4050070a68e90a83be81e92"><div class="ttname"><a href="union_p_s4_buttons.html#adf2ff3e6e4050070a68e90a83be81e92">PS4Buttons::share</a></div><div class="ttdeci">uint8_t share</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00048">PS4BT.h:48</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a63c57ecc5c678da13e7787792e385ec9"><div class="ttname"><a href="class_p_s4_b_t.html#a63c57ecc5c678da13e7787792e385ec9">PS4BT::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00153">PS4BT.h:153</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ab5e7d62ac3dfe6a925d1d6be3c756faa">DPAD_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00029">PS4BT.h:29</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html"><div class="ttname"><a href="_p_s3_enums_8h.html">PS3Enums.h</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a1163dc3517b1c27093b7cdd597eaa9fd"><div class="ttname"><a href="union_p_s4_buttons.html#a1163dc3517b1c27093b7cdd597eaa9fd">PS4Buttons::cross</a></div><div class="ttdeci">uint8_t cross</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00040">PS4BT.h:40</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99b88dcb511243ea0c046cac1f5633ec"><div class="ttname"><a href="union_p_s4_buttons.html#a99b88dcb511243ea0c046cac1f5633ec">PS4Buttons::l2</a></div><div class="ttdeci">uint8_t l2</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00046">PS4BT.h:46</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62ac6b9de0c407333a7161ca1efe6e30743">DPAD_LEFT_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00032">PS4BT.h:32</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a84eb7076098ec3135bdc440a279fde50"><div class="ttname"><a href="union_p_s4_buttons.html#a84eb7076098ec3135bdc440a279fde50">PS4Buttons::square</a></div><div class="ttdeci">uint8_t square</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00039">PS4BT.h:39</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a1a7935eca7794b2fb0da4a0b175a1974"><div class="ttname"><a href="class_p_s4_b_t.html#a1a7935eca7794b2fb0da4a0b175a1974">PS4BT::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00060">PS4BT.cpp:60</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a5fdf37790214db1379457bab99adace9"><div class="ttname"><a href="union_p_s4_buttons.html#a5fdf37790214db1379457bab99adace9">PS4Buttons::ps</a></div><div class="ttdeci">uint8_t ps</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00053">PS4BT.h:53</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a889b1b544fc439b2bcc7a041272701da"><div class="ttname"><a href="class_p_s4_b_t.html#a889b1b544fc439b2bcc7a041272701da">PS4BT::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00093">PS4BT.cpp:93</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a0cb061ca058b493218c01eb1ada1af00"><div class="ttname"><a href="union_p_s4_buttons.html#a0cb061ca058b493218c01eb1ada1af00">PS4Buttons::val</a></div><div class="ttdeci">uint8_t val[3]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00057">PS4BT.h:57</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_aad2133de0113cee402cda4a8c7e8b6a5"><div class="ttname"><a href="struct_p_s4_data.html#aad2133de0113cee402cda4a8c7e8b6a5">PS4Data::trigger</a></div><div class="ttdeci">uint8_t trigger[2]</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00063">PS4BT.h:63</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html"><div class="ttname"><a href="_b_t_h_i_d_8h.html">BTHID.h</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62abc09f2a57c77693c05e8d52917d2bac0">DPAD_UP_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00026">PS4BT.h:26</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_ae1ee62d7b9951ec7960f122c9fc2d2d0"><div class="ttname"><a href="class_b_t_h_i_d.html#ae1ee62d7b9951ec7960f122c9fc2d2d0">BTHID::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8cpp_source.html#l00051">BTHID.cpp:51</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_h_i_d_html"><div class="ttname"><a href="class_h_i_d.html">HID</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00143">hid.h:143</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a61f45e4cc254de9f4437d3e9866a24e9"><div class="ttname"><a href="class_p_s4_b_t.html#a61f45e4cc254de9f4437d3e9866a24e9">PS4BT::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00128">PS4BT.h:128</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a3488f850c1de8d49a9dc932f1575e5e4"><div class="ttname"><a href="union_p_s4_buttons.html#a3488f850c1de8d49a9dc932f1575e5e4">PS4Buttons::l1</a></div><div class="ttdeci">uint8_t l1</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00044">PS4BT.h:44</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62afe9bfbd6550b91f6640b74a155000cba">DPAD_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00031">PS4BT.h:31</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a1b679be7217f73f03393bb379b218d66">DPAD_DOWN_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00030">PS4BT.h:30</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a09805f3bcc362c410d7897792599d61d"><div class="ttname"><a href="union_p_s4_buttons.html#a09805f3bcc362c410d7897792599d61d">PS4Buttons::r3</a></div><div class="ttdeci">uint8_t r3</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00051">PS4BT.h:51</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html"><div class="ttname"><a href="union_p_s4_buttons.html">PS4Buttons</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00036">PS4BT.h:36</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a99e2971b4e511a8d1bb718408f559a92"><div class="ttname"><a href="union_p_s4_buttons.html#a99e2971b4e511a8d1bb718408f559a92">PS4Buttons::dpad</a></div><div class="ttdeci">uint8_t dpad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00038">PS4BT.h:38</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a0923bb3148f730c2823853d368576917"><div class="ttname"><a href="union_p_s4_buttons.html#a0923bb3148f730c2823853d368576917">PS4Buttons::keypad</a></div><div class="ttdeci">uint8_t keypad</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00054">PS4BT.h:54</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62af0f91a0468a0f49170b119f7de0d5cec">DPAD_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00027">PS4BT.h:27</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62aafb58dc961545afb332266b117e4a332">DPAD_UP</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00025">PS4BT.h:25</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a7cd7d1ebbe71e0612e7f754e06adc5ef"><div class="ttname"><a href="union_p_s4_buttons.html#a7cd7d1ebbe71e0612e7f754e06adc5ef">PS4Buttons::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00055">PS4BT.h:55</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_abe83edc43707665dc9c1233d824dcae4"><div class="ttname"><a href="class_p_s4_b_t.html#abe83edc43707665dc9c1233d824dcae4">PS4BT::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00122">PS4BT.h:122</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_ad9668449b50b4e28a2f269c04f628af8"><div class="ttname"><a href="class_p_s4_b_t.html#ad9668449b50b4e28a2f269c04f628af8">PS4BT::getAnalogButton</a></div><div class="ttdeci">uint8_t getAnalogButton(ButtonEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00089">PS4BT.cpp:89</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a72d07e9a47b1b75474e152b6aaeae6e5"><div class="ttname"><a href="union_p_s4_buttons.html#a72d07e9a47b1b75474e152b6aaeae6e5">PS4Buttons::triangle</a></div><div class="ttdeci">uint8_t triangle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00042">PS4BT.h:42</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a416642ff357b1313825fe94e0491b60e"><div class="ttname"><a href="union_p_s4_buttons.html#a416642ff357b1313825fe94e0491b60e">PS4Buttons::r2</a></div><div class="ttdeci">uint8_t r2</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00047">PS4BT.h:47</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a27f1b87f473ace3a4465ae999858357b"><div class="ttname"><a href="union_p_s4_buttons.html#a27f1b87f473ace3a4465ae999858357b">PS4Buttons::options</a></div><div class="ttdeci">uint8_t options</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00049">PS4BT.h:49</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a60d9bd17b809303cf2840f2892698bd0"><div class="ttname"><a href="class_p_s4_b_t.html#a60d9bd17b809303cf2840f2892698bd0">PS4BT::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00133">PS4BT.h:133</a></div></div>
<div class="ttc" id="_b_t_h_i_d_8h_html_a699c5d6eb13133dce9504391bc610f3e"><div class="ttname"><a href="_b_t_h_i_d_8h.html#a699c5d6eb13133dce9504391bc610f3e">KEYBOARD_PARSER_ID</a></div><div class="ttdeci">#define KEYBOARD_PARSER_ID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00024">BTHID.h:24</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62a352a732e4f7a41d4a92ab99e661094d0">DPAD_RIGHT_DOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00028">PS4BT.h:28</a></div></div>
<div class="ttc" id="class_h_i_d_report_parser_html"><div class="ttname"><a href="class_h_i_d_report_parser.html">HIDReportParser</a></div><div class="ttdef"><b>Definition:</b> <a href="hid_8h_source.html#l00138">hid.h:138</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_abf535806616e6cacf6707dc96279f1c1"><div class="ttname"><a href="class_p_s4_b_t.html#abf535806616e6cacf6707dc96279f1c1">PS4BT::PS4BT</a></div><div class="ttdeci">PS4BT(BTHID *p)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00073">PS4BT.h:73</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_ab8835f04d0c0c5e630d685ec2fd54e80"><div class="ttname"><a href="union_p_s4_buttons.html#ab8835f04d0c0c5e630d685ec2fd54e80">PS4Buttons::l3</a></div><div class="ttdeci">uint8_t l3</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00050">PS4BT.h:50</a></div></div>
<div class="ttc" id="struct_p_s4_data_html_a60c0217c1879e1b16ae5d19a8c8695a3"><div class="ttname"><a href="struct_p_s4_data.html#a60c0217c1879e1b16ae5d19a8c8695a3">PS4Data::btn</a></div><div class="ttdeci">PS4Buttons btn</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00062">PS4BT.h:62</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html_a7019f43cfd9ef4860dea0ffb5b580254"><div class="ttname"><a href="class_p_s4_b_t.html#a7019f43cfd9ef4860dea0ffb5b580254">PS4BT::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8cpp_source.html#l00071">PS4BT.cpp:71</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html"><div class="ttname"><a href="class_b_t_h_i_d.html">BTHID</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00029">BTHID.h:29</a></div></div>
<div class="ttc" id="_p_s4_b_t_8h_html_a3eca256e8b59574c290177d7df302a62"><div class="ttname"><a href="_p_s4_b_t_8h.html#a3eca256e8b59574c290177d7df302a62">DPADEnum</a></div><div class="ttdeci">DPADEnum</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00024">PS4BT.h:24</a></div></div>
<div class="ttc" id="union_p_s4_buttons_html_a95340b24c0846c778d2d8d0c983f4cdb"><div class="ttname"><a href="union_p_s4_buttons.html#a95340b24c0846c778d2d8d0c983f4cdb">PS4Buttons::circle</a></div><div class="ttdeci">uint8_t circle</div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00041">PS4BT.h:41</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_afb19720b65cda69d910416c7a689dd45"><div class="ttname"><a href="class_b_t_h_i_d.html#afb19720b65cda69d910416c7a689dd45">BTHID::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00096">BTHID.h:96</a></div></div>
<div class="ttc" id="class_p_s4_b_t_html"><div class="ttname"><a href="class_p_s4_b_t.html">PS4BT</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s4_b_t_8h_source.html#l00067">PS4BT.h:67</a></div></div>
<div class="ttc" id="class_b_t_h_i_d_html_a0e903f0b5040f3561e5de6c4431027b1"><div class="ttname"><a href="class_b_t_h_i_d.html#a0e903f0b5040f3561e5de6c4431027b1">BTHID::SetReportParser</a></div><div class="ttdeci">bool SetReportParser(uint8_t id, HIDReportParser *prs)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_h_i_d_8h_source.html#l00071">BTHID.h:71</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -154,160 +154,168 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="stringliteral">* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="stringliteral">* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.0)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral">* Balanduino</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral">* Sanguino</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral">* Black Widdow</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">The following boards need to be activated manually in [settings.h](settings.h):</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">* Arduino Mega ADK</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral"> * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral">Simply set the corresponding value to 1 instead of 0.</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">### [Bluetooth libraries](BTD.cpp)</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">The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</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="l00086"></a><span class="lineno"> 86</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](examples/Bluetooth).</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">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="l00089"></a><span class="lineno"> 89</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="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">### [BTHID library](BTHID.cpp)</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">The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="stringliteral">Currently HID mice and keyboards are supported.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="stringliteral">It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: &lt;https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/BTHID/BTHID.ino&gt; for more information.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="stringliteral">### [SPP library](SPP.cpp)</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">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="l00102"></a><span class="lineno"> 102</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="l00103"></a><span class="lineno"> 103</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</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">* &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="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="stringliteral"> * Note if you are using the Teensy 3.0 you should download this SPI library as well: &lt;https://github.com/xxxajk/spi4teensy3&gt;. You should then add ```#include &lt;spi4teensy3.h&gt;``` to your .ino file.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="stringliteral">* Balanduino</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="stringliteral">* Sanguino</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="stringliteral">The following boards need to be activated manually in [settings.h](settings.h):</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="stringliteral">* Arduino Mega ADK</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="stringliteral"> * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="stringliteral">* Black Widdow</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="stringliteral">Simply set the corresponding value to 1 instead of 0.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="stringliteral">### [Bluetooth libraries](BTD.cpp)</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="stringliteral">The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="stringliteral">This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="stringliteral">Some different examples can be found in the [example directory](examples/Bluetooth).</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="stringliteral">The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this:</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="stringliteral">[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino).</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="stringliteral">### [BTHID library](BTHID.cpp)</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="stringliteral">The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="stringliteral">Currently HID mice and keyboards are supported.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="stringliteral">It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information.</span></div>
<div class="line"><a name="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">### [SPP library](SPP.cpp)</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="stringliteral">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="l00103"></a><span class="lineno"> 103</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="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">Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information.</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="stringliteral">More information can be found at these blog posts:</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="stringliteral">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="l00110"></a><span class="lineno"> 110</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="l00109"></a><span class="lineno"> 109</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="l00110"></a><span class="lineno"> 110</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/07/rfcommspp-library-for-arduino/&gt;</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">### PS3 Library</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">These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB.</span></div>
<div class="line"><a name="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">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="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">__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#L15&gt;.</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">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="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">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</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="l00126"></a><span class="lineno"> 126</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="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">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</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="l00131"></a><span class="lineno"> 131</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="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</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="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">### PS3 Library</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">These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB.</span></div>
<div class="line"><a name="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">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="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">__Note:__ To obtain the address you have to plug in the Bluetooth dongle before connecting the controller, or alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20).</span></div>
<div class="line"><a name="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">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="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">Also take a look at the blog posts:</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/01/ps3-controller-bt-library-for-arduino/&gt;</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</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="l00129"></a><span class="lineno"> 129</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="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">A special thanks go to the following people:</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="stringliteral">Also a big thanks all the people behind these sites about the Motion controller:</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">* &lt;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="stringliteral">### Xbox Libraries</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">The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</span></div>
<div class="line"><a name="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">#### Xbox library</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">The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="stringliteral">All the information are from the following sites:</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">* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="stringliteral">* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&gt;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral">#### Xbox 360 Library</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">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="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">To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</span></div>
<div class="line"><a name="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">__Note that a Wireless controller can NOT be used via USB!__</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">Examples code can be found in the [examples directory](examples/Xbox).</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="stringliteral">Also see the following blog posts:</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="stringliteral">* &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="l00168"></a><span class="lineno"> 168</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="l00169"></a><span class="lineno"> 169</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="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">All the information regarding the Xbox 360 controller protocol are form these sites:</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">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="stringliteral">### [Wii library](Wii.cpp)</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="stringliteral">The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</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="l00182"></a><span class="lineno"> 182</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd,PAIR);</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</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="l00188"></a><span class="lineno"> 188</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="stringliteral">Then just press any button on the Wiimote and it will then connect to the dongle.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00133"></a><span class="lineno"> 133</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="l00134"></a><span class="lineno"> 134</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="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">Also a big thanks all the people behind these sites about the Motion controller:</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;http://thp.io/2010/psmove/&gt;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="stringliteral">* &lt;http://www.copenhagengamecollective.org/unimove/&gt;</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="stringliteral">* &lt;https://github.com/thp/psmoveapi&gt;</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="stringliteral">* &lt;http://code.google.com/p/moveonpc/&gt;</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="stringliteral">### Xbox Libraries</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">The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly.</span></div>
<div class="line"><a name="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">#### Xbox library</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">The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB.</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="stringliteral">All the information are from the following sites:</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">* &lt;https://github.com/torvalds/linux/blob/master/Documentation/input/xpad.txt&gt;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="stringliteral">* &lt;https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c&gt;</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="stringliteral">* &lt;http://euc.jp/periphs/xbox-controller.ja.html&gt;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL#L15&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">#### Xbox 360 Library</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">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="l00161"></a><span class="lineno"> 161</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="stringliteral">To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="stringliteral">__Note that a Wireless controller can NOT be used via USB!__</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">Examples code can be found in the [examples directory](examples/Xbox).</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">Also see the following blog posts:</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">* &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="l00171"></a><span class="lineno"> 171</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="l00172"></a><span class="lineno"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</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="l00175"></a><span class="lineno"> 175</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/UsbInfo&gt;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="stringliteral">* &lt;http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/WirelessUsbInfo&gt;</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="stringliteral">* &lt;https://github.com/Grumbel/xboxdrv/blob/master/PROTOCOL&gt;</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="stringliteral">### [Wii library](Wii.cpp)</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="stringliteral">The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller is also supported via Bluetooth.</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="stringliteral">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="l00185"></a><span class="lineno"> 185</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd,PAIR);</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="stringliteral">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="l00191"></a><span class="lineno"> 191</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="stringliteral">After that you can simply create the instance like so:</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="stringliteral">WII Wii(&amp;Btd);</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="stringliteral">```</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="stringliteral">Then just press any button on the Wiimote and it will then connect to the dongle.</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="stringliteral">Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino).</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="stringliteral">Also take a look at the blog post:</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="stringliteral">* &lt;http://blog.tkjelectronics.dk/2012/08/wiimote-added-to-usb-host-library/&gt;</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="stringliteral">The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h).</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="stringliteral">The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="stringliteral">All the information about the Wii controllers are from these sites:</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</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="l00213"></a><span class="lineno"> 213</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote&gt;</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers&gt;</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Nunchuck&gt;</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="stringliteral">* &lt;http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus&gt;</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="stringliteral"># FAQ</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="stringliteral">&gt; When I plug my device into the USB connector nothing happens?</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="stringliteral"></span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</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="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00081">usbhost.h:81</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
</div><!-- 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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -145,7 +145,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -117,60 +117,6 @@ 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:a72444116eaac116983a3dec35b1944f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a72444116eaac116983a3dec35b1944f0">L2CAP_SDP_WAIT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a72444116eaac116983a3dec35b1944f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae100d60ef94dea996b12fc89d6a339f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#ae100d60ef94dea996b12fc89d6a339f2">L2CAP_SDP_REQUEST</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ae100d60ef94dea996b12fc89d6a339f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b8e3e654e4f55e27ca5054aef956edc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a1b8e3e654e4f55e27ca5054aef956edc">L2CAP_SDP_SUCCESS</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a1b8e3e654e4f55e27ca5054aef956edc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f7af87e6960e2e8ed49006b0b50f3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a25f7af87e6960e2e8ed49006b0b50f3e">L2CAP_SDP_DONE</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a25f7af87e6960e2e8ed49006b0b50f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf2585ad5d49cf2df2595d860ad6b258"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#adf2585ad5d49cf2df2595d860ad6b258">L2CAP_DISCONNECT_RESPONSE</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:adf2585ad5d49cf2df2595d860ad6b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b7cbe1aa26664847a48bd4578bc50bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd">L2CAP_RFCOMM_WAIT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a0b7cbe1aa26664847a48bd4578bc50bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7f3cf22bd76c9ccd377d96b4a751fc4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#ad7f3cf22bd76c9ccd377d96b4a751fc4">L2CAP_RFCOMM_REQUEST</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad7f3cf22bd76c9ccd377d96b4a751fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75321d181cfa3c485bcd96918c1b353e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a75321d181cfa3c485bcd96918c1b353e">L2CAP_RFCOMM_SUCCESS</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a75321d181cfa3c485bcd96918c1b353e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b4f24642f460c347305dedbebc5e63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#ac3b4f24642f460c347305dedbebc5e63">L2CAP_RFCOMM_DONE</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:ac3b4f24642f460c347305dedbebc5e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d649771ff995585c2bff030b7c1a2d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a0d649771ff995585c2bff030b7c1a2d3">L2CAP_FLAG_CONNECTION_SDP_REQUEST</a>&#160;&#160;&#160;0x001</td></tr>
<tr class="separator:a0d649771ff995585c2bff030b7c1a2d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61b15e54b1c5f9a28c996ae8e04ca3c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0">L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST</a>&#160;&#160;&#160;0x002</td></tr>
<tr class="separator:a61b15e54b1c5f9a28c996ae8e04ca3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52cc6e4a2a6d151dd5d0e788b937b2e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a52cc6e4a2a6d151dd5d0e788b937b2e8">L2CAP_FLAG_CONFIG_SDP_REQUEST</a>&#160;&#160;&#160;0x004</td></tr>
<tr class="separator:a52cc6e4a2a6d151dd5d0e788b937b2e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaa9eb6a1d27745243ef134ecad34bb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#abaa9eb6a1d27745243ef134ecad34bb2">L2CAP_FLAG_CONFIG_RFCOMM_REQUEST</a>&#160;&#160;&#160;0x008</td></tr>
<tr class="separator:abaa9eb6a1d27745243ef134ecad34bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75ef214ce8a03e8d62a1b24554bc1a05"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05">L2CAP_FLAG_CONFIG_SDP_SUCCESS</a>&#160;&#160;&#160;0x010</td></tr>
<tr class="separator:a75ef214ce8a03e8d62a1b24554bc1a05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8af4ce4d4c42d85f0d84a514354fc570"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a8af4ce4d4c42d85f0d84a514354fc570">L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS</a>&#160;&#160;&#160;0x020</td></tr>
<tr class="separator:a8af4ce4d4c42d85f0d84a514354fc570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac25fa1de5df70a97a6ccc6267d65fea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#aac25fa1de5df70a97a6ccc6267d65fea">L2CAP_FLAG_DISCONNECT_SDP_REQUEST</a>&#160;&#160;&#160;0x040</td></tr>
<tr class="separator:aac25fa1de5df70a97a6ccc6267d65fea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da70c702c0b792d99f8e39713ac0ee7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a9da70c702c0b792d99f8e39713ac0ee7">L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST</a>&#160;&#160;&#160;0x080</td></tr>
<tr class="separator:a9da70c702c0b792d99f8e39713ac0ee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae16d9fcc820433592ba171c8b2a9e25d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#ae16d9fcc820433592ba171c8b2a9e25d">L2CAP_FLAG_DISCONNECT_RESPONSE</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="separator:ae16d9fcc820433592ba171c8b2a9e25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b1cbac2f2fc44b393ff3cb96448892a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a3b1cbac2f2fc44b393ff3cb96448892a">l2cap_connection_request_sdp_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a0d649771ff995585c2bff030b7c1a2d3">L2CAP_FLAG_CONNECTION_SDP_REQUEST</a>)</td></tr>
<tr class="separator:a3b1cbac2f2fc44b393ff3cb96448892a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28cbb8ce9ab60e04e2e131a87e06d5f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a28cbb8ce9ab60e04e2e131a87e06d5f0">l2cap_connection_request_rfcomm_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0">L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST</a>)</td></tr>
<tr class="separator:a28cbb8ce9ab60e04e2e131a87e06d5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f5f1cfcc3f39ee032185cac348cb068"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a5f5f1cfcc3f39ee032185cac348cb068">l2cap_config_request_sdp_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a52cc6e4a2a6d151dd5d0e788b937b2e8">L2CAP_FLAG_CONFIG_SDP_REQUEST</a>)</td></tr>
<tr class="separator:a5f5f1cfcc3f39ee032185cac348cb068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9459fccc82a24e23dc52ef0e0422273"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#ae9459fccc82a24e23dc52ef0e0422273">l2cap_config_request_rfcomm_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#abaa9eb6a1d27745243ef134ecad34bb2">L2CAP_FLAG_CONFIG_RFCOMM_REQUEST</a>)</td></tr>
<tr class="separator:ae9459fccc82a24e23dc52ef0e0422273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37d324cfd5a79f623dcd0fc8fa047447"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a37d324cfd5a79f623dcd0fc8fa047447">l2cap_config_success_sdp_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05">L2CAP_FLAG_CONFIG_SDP_SUCCESS</a>)</td></tr>
<tr class="separator:a37d324cfd5a79f623dcd0fc8fa047447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c5c7dc5782a562f1b91e835f8aebdb4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a1c5c7dc5782a562f1b91e835f8aebdb4">l2cap_config_success_rfcomm_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a8af4ce4d4c42d85f0d84a514354fc570">L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS</a>)</td></tr>
<tr class="separator:a1c5c7dc5782a562f1b91e835f8aebdb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05022c9cce93cccafc32337771c8704a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a05022c9cce93cccafc32337771c8704a">l2cap_disconnect_request_sdp_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#aac25fa1de5df70a97a6ccc6267d65fea">L2CAP_FLAG_DISCONNECT_SDP_REQUEST</a>)</td></tr>
<tr class="separator:a05022c9cce93cccafc32337771c8704a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af565a91718a79907aece8a5c278aa0bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#af565a91718a79907aece8a5c278aa0bc">l2cap_disconnect_request_rfcomm_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a9da70c702c0b792d99f8e39713ac0ee7">L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST</a>)</td></tr>
<tr class="separator:af565a91718a79907aece8a5c278aa0bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1412e00ebed70b8d7b41afd769252530"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a1412e00ebed70b8d7b41afd769252530">l2cap_disconnect_response_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#ae16d9fcc820433592ba171c8b2a9e25d">L2CAP_FLAG_DISCONNECT_RESPONSE</a>)</td></tr>
<tr class="separator:a1412e00ebed70b8d7b41afd769252530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af98e9758e7c66f921d980b280a3f5b4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#af98e9758e7c66f921d980b280a3f5b4b">SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST_PDU</a>&#160;&#160;&#160;0x06</td></tr>
<tr class="separator:af98e9758e7c66f921d980b280a3f5b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42a6f00a3828a932bae1509c813b5c98"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_p_p_8h.html#a42a6f00a3828a932bae1509c813b5c98">SDP_SERVICE_SEARCH_ATTRIBUTE_RESPONSE_PDU</a>&#160;&#160;&#160;0x07</td></tr>
@ -203,384 +149,6 @@ Macros</h2></td></tr>
<tr class="separator:a336bf1805637fdd66033c9040e606a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a72444116eaac116983a3dec35b1944f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_SDP_WAIT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00024">24</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae100d60ef94dea996b12fc89d6a339f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_SDP_REQUEST&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00025">25</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1b8e3e654e4f55e27ca5054aef956edc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_SDP_SUCCESS&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00026">26</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a25f7af87e6960e2e8ed49006b0b50f3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_SDP_DONE&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00027">27</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="adf2585ad5d49cf2df2595d860ad6b258"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_DISCONNECT_RESPONSE&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00028">28</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0b7cbe1aa26664847a48bd4578bc50bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_RFCOMM_WAIT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00031">31</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad7f3cf22bd76c9ccd377d96b4a751fc4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_RFCOMM_REQUEST&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00032">32</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a75321d181cfa3c485bcd96918c1b353e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_RFCOMM_SUCCESS&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00033">33</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac3b4f24642f460c347305dedbebc5e63"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_RFCOMM_DONE&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00034">34</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0d649771ff995585c2bff030b7c1a2d3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST&#160;&#160;&#160;0x001</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00037">37</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a61b15e54b1c5f9a28c996ae8e04ca3c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST&#160;&#160;&#160;0x002</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00038">38</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a52cc6e4a2a6d151dd5d0e788b937b2e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_SDP_REQUEST&#160;&#160;&#160;0x004</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00039">39</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="abaa9eb6a1d27745243ef134ecad34bb2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_RFCOMM_REQUEST&#160;&#160;&#160;0x008</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00040">40</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a75ef214ce8a03e8d62a1b24554bc1a05"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS&#160;&#160;&#160;0x010</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00041">41</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8af4ce4d4c42d85f0d84a514354fc570"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS&#160;&#160;&#160;0x020</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00042">42</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="aac25fa1de5df70a97a6ccc6267d65fea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST&#160;&#160;&#160;0x040</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00043">43</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9da70c702c0b792d99f8e39713ac0ee7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST&#160;&#160;&#160;0x080</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00044">44</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae16d9fcc820433592ba171c8b2a9e25d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_RESPONSE&#160;&#160;&#160;0x100</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00045">45</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3b1cbac2f2fc44b393ff3cb96448892a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_sdp_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a0d649771ff995585c2bff030b7c1a2d3">L2CAP_FLAG_CONNECTION_SDP_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00048">48</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a28cbb8ce9ab60e04e2e131a87e06d5f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_rfcomm_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0">L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00049">49</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5f5f1cfcc3f39ee032185cac348cb068"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_request_sdp_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a52cc6e4a2a6d151dd5d0e788b937b2e8">L2CAP_FLAG_CONFIG_SDP_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00050">50</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae9459fccc82a24e23dc52ef0e0422273"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_request_rfcomm_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#abaa9eb6a1d27745243ef134ecad34bb2">L2CAP_FLAG_CONFIG_RFCOMM_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00051">51</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a37d324cfd5a79f623dcd0fc8fa047447"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_sdp_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05">L2CAP_FLAG_CONFIG_SDP_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00052">52</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1c5c7dc5782a562f1b91e835f8aebdb4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_rfcomm_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a8af4ce4d4c42d85f0d84a514354fc570">L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00053">53</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a05022c9cce93cccafc32337771c8704a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_request_sdp_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#aac25fa1de5df70a97a6ccc6267d65fea">L2CAP_FLAG_DISCONNECT_SDP_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00054">54</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="af565a91718a79907aece8a5c278aa0bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_request_rfcomm_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#a9da70c702c0b792d99f8e39713ac0ee7">L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00055">55</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1412e00ebed70b8d7b41afd769252530"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_s_p_p_8h.html#ae16d9fcc820433592ba171c8b2a9e25d">L2CAP_FLAG_DISCONNECT_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00056">56</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
<a class="anchor" id="af98e9758e7c66f921d980b280a3f5b4b"></a>
<div class="memitem">
<div class="memproto">
@ -591,7 +159,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00059">59</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00024">24</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -605,7 +173,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00060">60</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00025">25</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -619,7 +187,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00061">61</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00026">26</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -633,7 +201,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00062">62</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00027">27</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -647,7 +215,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00065">65</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00030">30</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -661,7 +229,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00066">66</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00031">31</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -675,7 +243,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00067">67</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00032">32</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -689,7 +257,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00069">69</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00034">34</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -703,7 +271,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00071">71</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00036">36</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -717,7 +285,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00074">74</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00039">39</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -731,7 +299,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00075">75</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00040">40</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -745,7 +313,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00076">76</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00041">41</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -759,7 +327,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00077">77</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00042">42</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -773,7 +341,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00078">78</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00043">43</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -787,7 +355,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00079">79</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
<p>Definition at line <a class="el" href="_s_p_p_8h_source.html#l00044">44</a> of file <a class="el" href="_s_p_p_8h_source.html">SPP.h</a>.</p>
</div>
</div>
@ -796,7 +364,7 @@ Macros</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,185 +111,164 @@ 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="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/* Bluetooth L2CAP states for SDP_task() */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a72444116eaac116983a3dec35b1944f0"> 24</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 0</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae100d60ef94dea996b12fc89d6a339f2"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_SDP_REQUEST 1</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_SDP_SUCCESS 2</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a25f7af87e6960e2e8ed49006b0b50f3e"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_SDP_DONE 3</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 28</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DISCONNECT_RESPONSE 4</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/* Bluetooth L2CAP states for RFCOMM_task() */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 31</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 0</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad7f3cf22bd76c9ccd377d96b4a751fc4"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_RFCOMM_REQUEST 1</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 33</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 2</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ac3b4f24642f460c347305dedbebc5e63"> 34</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_RFCOMM_DONE 3</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/* Used for SDP */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af98e9758e7c66f921d980b280a3f5b4b"> 24</a></span>&#160;<span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST_PDU 0x06 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a42a6f00a3828a932bae1509c813b5c98"> 25</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_RESPONSE_PDU 0x07 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SERIALPORT_UUID 0x1101 // See http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ac202a65fc9bc1a5d837e5d095b1bb9f2"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_UUID 0x0100</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">/* Used for RFCOMM */</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a5747e4c0826eb3341fe2476b5229e0d0"> 30</a></span>&#160;<span class="preprocessor">#define RFCOMM_SABM 0x2F</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3"> 31</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UA 0x63</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UIH 0xEF</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span><span class="comment">//#define RFCOMM_DM 0x0F</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f"> 34</a></span>&#160;<span class="preprocessor">#define RFCOMM_DISC 0x43</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">/* L2CAP event flags */</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 37</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST 0x001</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 38</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST 0x002</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a52cc6e4a2a6d151dd5d0e788b937b2e8"> 39</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_REQUEST 0x004</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#abaa9eb6a1d27745243ef134ecad34bb2"> 40</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_REQUEST 0x008</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS 0x010</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS 0x020</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST 0x040</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST 0x080</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE 0x100</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a3b1cbac2f2fc44b393ff3cb96448892a"> 48</a></span>&#160;<span class="preprocessor">#define l2cap_connection_request_sdp_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_SDP_REQUEST)</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a28cbb8ce9ab60e04e2e131a87e06d5f0"> 49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_rfcomm_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST)</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a5f5f1cfcc3f39ee032185cac348cb068"> 50</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_request_sdp_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_SDP_REQUEST)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae9459fccc82a24e23dc52ef0e0422273"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_request_rfcomm_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_RFCOMM_REQUEST)</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a37d324cfd5a79f623dcd0fc8fa047447"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_sdp_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_SDP_SUCCESS)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a1c5c7dc5782a562f1b91e835f8aebdb4"> 53</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_rfcomm_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a05022c9cce93cccafc32337771c8704a"> 54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_request_sdp_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_SDP_REQUEST)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af565a91718a79907aece8a5c278aa0bc"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_request_rfcomm_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a1412e00ebed70b8d7b41afd769252530"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_RESPONSE)</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">/* Used for SDP */</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af98e9758e7c66f921d980b280a3f5b4b"> 59</a></span>&#160;<span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST_PDU 0x06 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a42a6f00a3828a932bae1509c813b5c98"> 60</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SDP_SERVICE_SEARCH_ATTRIBUTE_RESPONSE_PDU 0x07 // See the RFCOMM specs</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a677a1fc4883355f7fad87551cc003c1b"> 61</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SERIALPORT_UUID 0x1101 // See http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ac202a65fc9bc1a5d837e5d095b1bb9f2"> 62</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_UUID 0x0100</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;<span class="comment">/* Used for RFCOMM */</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a5747e4c0826eb3341fe2476b5229e0d0"> 65</a></span>&#160;<span class="preprocessor">#define RFCOMM_SABM 0x2F</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a9f534220af893b5ae8c8927564db77c3"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UA 0x63</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ae9ffac80725386a879ba956251f64373"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_UIH 0xEF</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span><span class="comment">//#define RFCOMM_DM 0x0F</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a2c8ebc5e78dc22e7ae4e79370fada66f"> 69</a></span>&#160;<span class="preprocessor">#define RFCOMM_DISC 0x43</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"><a class="line" href="_s_p_p_8h.html#af31032289d962bc2408debecc2823b8c"> 71</a></span>&#160;<span class="preprocessor">#define extendAddress 0x01 // Always 1</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// Multiplexer message types</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a11185ec5287f08bf49c2c68d8cd52a16"> 74</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_PN_CMD 0x83</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_PN_RSP 0x81</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_CMD 0xE3</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550"> 77</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_RSP 0xE1</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3"> 78</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_CMD 0x93</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b"> 79</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_RSP 0x91</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_CMD 0x23</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_RSP 0x21</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">#define BT_RFCOMM_FCON_CMD 0xA3</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">#define BT_RFCOMM_FCON_RSP 0xA1</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">#define BT_RFCOMM_FCOFF_CMD 0x63</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">#define BT_RFCOMM_FCOFF_RSP 0x61</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">#define BT_RFCOMM_RLS_CMD 0x53</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">#define BT_RFCOMM_RLS_RSP 0x51</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">#define BT_RFCOMM_NSC_RSP 0x11</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_s_p_p.html"> 93</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_p.html">SPP</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a>, <span class="keyword">public</span> Stream {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_s_p_p.html#ae5cb4167b3ab9c891398f54729c6da81">SPP</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keyword">const</span> <span class="keywordtype">char</span>* name = <span class="stringliteral">&quot;Arduino&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>* pin = <span class="stringliteral">&quot;1234&quot;</span>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ac90f0765c478bd624cee3b8d493d8432"> 107</a></span>&#160; <span class="keyword">operator</span> bool() {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028"> 111</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>(uint8_t* <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">Run</a>();</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">Reset</a>();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">disconnect</a>();</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">available</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a235d75f40a32a5905fd8fedcc37aa350">flush</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">peek</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">read</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">using</span> Print::write;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">/* Bluetooth dongle library pointer */</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#af31032289d962bc2408debecc2823b8c"> 36</a></span>&#160;<span class="preprocessor">#define extendAddress 0x01 // Always 1</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Multiplexer message types</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a11185ec5287f08bf49c2c68d8cd52a16"> 39</a></span>&#160;<span class="preprocessor">#define BT_RFCOMM_PN_CMD 0x83</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a17b4a98661e30b6989cbe35ba5da4822"> 40</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_PN_RSP 0x81</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad14b1def5eec64e94cc64a2dcba354ea"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_CMD 0xE3</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ab68e7621ab822c3bfb9507c78d0d0550"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_MSC_RSP 0xE1</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#ad9b8c11f7f4f8e8d59ac77999b2ec4a3"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_CMD 0x93</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_s_p_p_8h.html#a336bf1805637fdd66033c9040e606a6b"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BT_RFCOMM_RPN_RSP 0x91</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_CMD 0x23</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">#define BT_RFCOMM_TEST_RSP 0x21</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">#define BT_RFCOMM_FCON_CMD 0xA3</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">#define BT_RFCOMM_FCON_RSP 0xA1</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">#define BT_RFCOMM_FCOFF_CMD 0x63</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">#define BT_RFCOMM_FCOFF_RSP 0x61</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">#define BT_RFCOMM_RLS_CMD 0x53</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">#define BT_RFCOMM_RLS_RSP 0x51</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">#define BT_RFCOMM_NSC_RSP 0x11</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_s_p_p.html"> 61</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_p.html">SPP</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a>, <span class="keyword">public</span> Stream {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_s_p_p.html#a6842e2b7f66024eecc151e3bdbfc7e94">SPP</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keyword">const</span> <span class="keywordtype">char</span> *name = <span class="stringliteral">&quot;Arduino&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *pin = <span class="stringliteral">&quot;0000&quot;</span>);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ac90f0765c478bd624cee3b8d493d8432"> 75</a></span>&#160; <span class="keyword">operator</span> bool() {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028"> 79</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">connected</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>(uint8_t* <a class="code" href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">ACLData</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">Run</a>();</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">Reset</a>();</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">disconnect</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">available</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194"> 103</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194">flush</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>();</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">peek</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">read</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;=100</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">using</span> Print::write;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(uint8_t data);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">write</a>(<span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">discard</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">send</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">/* Bluetooth dongle library pointer */</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd;</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="comment">/* Set true when a channel is created */</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">bool</span> SDPConnected;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">bool</span> RFCOMMConnected;</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; uint16_t hci_handle; <span class="comment">// The HCI Handle for the connection</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">/* Variables used by L2CAP state machines */</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t l2cap_sdp_state;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint8_t l2cap_rfcomm_state;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">/* Set true when a channel is created */</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">bool</span> SDPConnected;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">bool</span> RFCOMMConnected;</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; uint16_t hci_handle; <span class="comment">// The HCI Handle for the connection</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">/* Variables used by L2CAP state machines */</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t l2cap_sdp_state;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint8_t l2cap_rfcomm_state;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint16_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t l2capoutbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t rfcommbuf[10]; <span class="comment">// Buffer for RFCOMM Commands</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t sdp_scid[2]; <span class="comment">// L2CAP source CID for SDP</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; uint8_t sdp_dcid[2]; <span class="comment">// 0x0050</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint8_t rfcomm_scid[2]; <span class="comment">// L2CAP source CID for RFCOMM</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t rfcomm_dcid[2]; <span class="comment">// 0x0051</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint8_t identifier; <span class="comment">// Identifier for command</span></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; <span class="comment">/* RFCOMM Variables */</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint8_t rfcommChannel;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; uint8_t rfcommChannelConnection; <span class="comment">// This is the channel the SPP channel will be running at</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint8_t rfcommDirection;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint8_t rfcommCommandResponse;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint8_t rfcommChannelType;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; uint8_t rfcommPfBit;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> waitForLastCommand;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">bool</span> creditSent;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; uint8_t rfcommDataBuffer[100]; <span class="comment">// Create a 100 sized buffer for incoming data</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; uint8_t sppOutputBuffer[100]; <span class="comment">// Create a 100 sized buffer for outgoing SPP data</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; uint8_t sppIndex;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; uint8_t rfcommAvailable;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">bool</span> firstMessage; <span class="comment">// Used to see if it&#39;s the first SDP request received</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uint8_t bytesRead; <span class="comment">// Counter to see when it&#39;s time to send more credit</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">void</span> SDP_task(); <span class="comment">// SDP state machine</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> RFCOMM_task(); <span class="comment">// RFCOMM state machine</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/* SDP Commands */</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">void</span> SDP_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> serviceNotSupported(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> serialPortResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> serialPortResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> l2capResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordtype">void</span> l2capResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</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; <span class="comment">/* RFCOMM Commands */</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> RFCOMM_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> sendRfcomm(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t *data, uint8_t length);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">void</span> sendRfcommCredit(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t credit);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint8_t calcFcs(uint8_t *data);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordtype">bool</span> checkFcs(uint8_t *data, uint8_t fcs);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t crc(uint8_t *data);</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;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_s_p_p_html_a6fb231316ca9b1028322d2d2188b27b0"><div class="ttname"><a href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a></div><div class="ttdeci">virtual size_t write(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00759">SPP.cpp:759</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="class_s_p_p_html_a235d75f40a32a5905fd8fedcc37aa350"><div class="ttname"><a href="class_s_p_p.html#a235d75f40a32a5905fd8fedcc37aa350">SPP::flush</a></div><div class="ttdeci">virtual void flush(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00804">SPP.cpp:804</a></div></div>
<div class="ttc" id="class_s_p_p_html_ade5d4f0ab50ddcad14f75fce4450a028"><div class="ttname"><a href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">SPP::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00111">SPP.h:111</a></div></div>
<div class="ttc" id="class_s_p_p_html_aae8dc037e845480f582afea57b858b95"><div class="ttname"><a href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">SPP::read</a></div><div class="ttdeci">virtual int read(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00814">SPP.cpp:814</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2de67ee7ad1be9d2f3daf7dc08dc5f90"><div class="ttname"><a href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">SPP::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00429">SPP.cpp:429</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; uint8_t l2capoutbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t rfcommbuf[10]; <span class="comment">// Buffer for RFCOMM Commands</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t sdp_scid[2]; <span class="comment">// L2CAP source CID for SDP</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint8_t sdp_dcid[2]; <span class="comment">// 0x0050</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint8_t rfcomm_scid[2]; <span class="comment">// L2CAP source CID for RFCOMM</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t rfcomm_dcid[2]; <span class="comment">// 0x0051</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint8_t identifier; <span class="comment">// Identifier for command</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/* RFCOMM Variables */</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t rfcommChannel;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t rfcommChannelConnection; <span class="comment">// This is the channel the SPP channel will be running at</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; uint8_t rfcommDirection;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; uint8_t rfcommCommandResponse;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t rfcommChannelType;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; uint8_t rfcommPfBit;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">bool</span> waitForLastCommand;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">bool</span> creditSent;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint8_t rfcommDataBuffer[100]; <span class="comment">// Create a 100 sized buffer for incoming data</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; uint8_t sppOutputBuffer[100]; <span class="comment">// Create a 100 sized buffer for outgoing SPP data</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint8_t sppIndex;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint8_t rfcommAvailable;</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="keywordtype">bool</span> firstMessage; <span class="comment">// Used to see if it&#39;s the first SDP request received</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; uint8_t bytesRead; <span class="comment">// Counter to see when it&#39;s time to send more credit</span></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; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> SDP_task(); <span class="comment">// SDP state machine</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">void</span> RFCOMM_task(); <span class="comment">// RFCOMM state machine</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">/* SDP Commands */</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">void</span> SDP_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> serviceNotSupported(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">void</span> serialPortResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> serialPortResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">void</span> l2capResponse1(uint8_t transactionIDHigh, uint8_t transactionIDLow);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> l2capResponse2(uint8_t transactionIDHigh, uint8_t transactionIDLow);</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="comment">/* RFCOMM Commands */</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> RFCOMM_Command(uint8_t *data, uint8_t nbytes);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">void</span> sendRfcomm(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t *data, uint8_t length);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">void</span> sendRfcommCredit(uint8_t channel, uint8_t direction, uint8_t CR, uint8_t channelType, uint8_t pfBit, uint8_t credit);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint8_t calcFcs(uint8_t *data);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">bool</span> checkFcs(uint8_t *data, uint8_t fcs);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; uint8_t crc(uint8_t *data);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;};</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_s_p_p_html_a6fb231316ca9b1028322d2d2188b27b0"><div class="ttname"><a href="class_s_p_p.html#a6fb231316ca9b1028322d2d2188b27b0">SPP::write</a></div><div class="ttdeci">virtual size_t write(uint8_t data)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00728">SPP.cpp:728</a></div></div>
<div class="ttc" id="class_s_p_p_html_a6842e2b7f66024eecc151e3bdbfc7e94"><div class="ttname"><a href="class_s_p_p.html#a6842e2b7f66024eecc151e3bdbfc7e94">SPP::SPP</a></div><div class="ttdeci">SPP(BTD *p, const char *name=&quot;Arduino&quot;, const char *pin=&quot;0000&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00045">SPP.cpp:45</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_s_p_p_html_ade5d4f0ab50ddcad14f75fce4450a028"><div class="ttname"><a href="class_s_p_p.html#ade5d4f0ab50ddcad14f75fce4450a028">SPP::connected</a></div><div class="ttdeci">bool connected</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00079">SPP.h:79</a></div></div>
<div class="ttc" id="class_s_p_p_html_aae8dc037e845480f582afea57b858b95"><div class="ttname"><a href="class_s_p_p.html#aae8dc037e845480f582afea57b858b95">SPP::read</a></div><div class="ttdeci">virtual int read(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00797">SPP.cpp:797</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2de67ee7ad1be9d2f3daf7dc08dc5f90"><div class="ttname"><a href="class_s_p_p.html#a2de67ee7ad1be9d2f3daf7dc08dc5f90">SPP::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00428">SPP.cpp:428</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_s_p_p_html_ae2c661bd46cd2d74bd29c4c771cd2ef0"><div class="ttname"><a href="class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0">SPP::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00063">SPP.cpp:63</a></div></div>
<div class="ttc" id="class_s_p_p_html_ae5cb4167b3ab9c891398f54729c6da81"><div class="ttname"><a href="class_s_p_p.html#ae5cb4167b3ab9c891398f54729c6da81">SPP::SPP</a></div><div class="ttdeci">SPP(BTD *p, const char *name=&quot;Arduino&quot;, const char *pin=&quot;1234&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00045">SPP.cpp:45</a></div></div>
<div class="ttc" id="class_s_p_p_html_a731eb43856854b6a406e9cfa3f9e57a4"><div class="ttname"><a href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">SPP::available</a></div><div class="ttdeci">virtual int available(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00800">SPP.cpp:800</a></div></div>
<div class="ttc" id="class_s_p_p_html_a81c4ed9671652c96df96444a61f64194"><div class="ttname"><a href="class_s_p_p.html#a81c4ed9671652c96df96444a61f64194">SPP::flush</a></div><div class="ttdeci">virtual void flush(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00103">SPP.h:103</a></div></div>
<div class="ttc" id="class_s_p_p_html_a731eb43856854b6a406e9cfa3f9e57a4"><div class="ttname"><a href="class_s_p_p.html#a731eb43856854b6a406e9cfa3f9e57a4">SPP::available</a></div><div class="ttdeci">virtual int available(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00783">SPP.cpp:783</a></div></div>
<div class="ttc" id="class_s_p_p_html_a4ca8c34757efb43a449cf8b3c7672e23"><div class="ttname"><a href="class_s_p_p.html#a4ca8c34757efb43a449cf8b3c7672e23">SPP::discard</a></div><div class="ttdeci">void discard(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00787">SPP.cpp:787</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a32d591ef5742a99963130616ef146787"><div class="ttname"><a href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a></div><div class="ttdeci">#define BULK_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00033">BTD.h:33</a></div></div>
<div class="ttc" id="class_s_p_p_html_a2b4b1f85f553c6a2fdd523e50c75c7b0"><div class="ttname"><a href="class_s_p_p.html#a2b4b1f85f553c6a2fdd523e50c75c7b0">SPP::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00074">SPP.cpp:74</a></div></div>
<div class="ttc" id="class_s_p_p_html"><div class="ttname"><a href="class_s_p_p.html">SPP</a></div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00093">SPP.h:93</a></div></div>
<div class="ttc" id="class_s_p_p_html_ab6c20e303965056403ae5aef1d228858"><div class="ttname"><a href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">SPP::send</a></div><div class="ttdeci">void send(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00772">SPP.cpp:772</a></div></div>
<div class="ttc" id="class_s_p_p_html"><div class="ttname"><a href="class_s_p_p.html">SPP</a></div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8h_source.html#l00061">SPP.h:61</a></div></div>
<div class="ttc" id="class_s_p_p_html_ab6c20e303965056403ae5aef1d228858"><div class="ttname"><a href="class_s_p_p.html#ab6c20e303965056403ae5aef1d228858">SPP::send</a></div><div class="ttdeci">void send(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00755">SPP.cpp:755</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_s_p_p_html_abdfe9453fb82781bec53a191c2e9fb1d"><div class="ttname"><a href="class_s_p_p.html#abdfe9453fb82781bec53a191c2e9fb1d">SPP::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00086">SPP.cpp:86</a></div></div>
<div class="ttc" id="class_s_p_p_html_a3149d75ba4646ba5b5428c465e983144"><div class="ttname"><a href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">SPP::peek</a></div><div class="ttdeci">virtual int peek(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00808">SPP.cpp:808</a></div></div>
<div class="ttc" id="class_s_p_p_html_a3149d75ba4646ba5b5428c465e983144"><div class="ttname"><a href="class_s_p_p.html#a3149d75ba4646ba5b5428c465e983144">SPP::peek</a></div><div class="ttdeci">virtual int peek(void)</div><div class="ttdef"><b>Definition:</b> <a href="_s_p_p_8cpp_source.html#l00791">SPP.cpp:791</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for Usb.cpp:</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,45 +1,49 @@
<map id="Usb.h" name="Usb.h">
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="113,83,167,111"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="330,83,389,111"/>
<area shape="rect" id="node14" href="$hid_8h.html" title="hid.h" alt="" coords="732,83,781,111"/>
<area shape="rect" id="node22" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="1043,83,1121,111"/>
<area shape="rect" id="node26" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="1146,83,1216,111"/>
<area shape="rect" id="node28" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="1241,83,1343,111"/>
<area shape="rect" id="node30" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1367,83,1459,111"/>
<area shape="rect" id="node32" href="$message_8cpp.html" title="message.cpp" alt="" coords="1483,83,1583,111"/>
<area shape="rect" id="node33" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1607,83,1715,111"/>
<area shape="rect" id="node34" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="1739,83,1823,111"/>
<area shape="rect" id="node36" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1848,83,1917,111"/>
<area shape="rect" id="node37" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1942,83,2017,111"/>
<area shape="rect" id="node39" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="2042,83,2139,111"/>
<area shape="rect" id="node41" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="2170,83,2275,111"/>
<area shape="rect" id="node43" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="2313,83,2409,111"/>
<area shape="rect" id="node2" href="$adk_8h.html" title="adk.h" alt="" coords="141,83,195,111"/>
<area shape="rect" id="node4" href="$_b_t_d_8h.html" title="BTD.h" alt="" coords="310,83,369,111"/>
<area shape="rect" id="node16" href="$hid_8h.html" title="hid.h" alt="" coords="648,161,697,189"/>
<area shape="rect" id="node24" href="$hidusagestr_8h.html" title="hidusagestr.h" alt="" coords="751,83,851,111"/>
<area shape="rect" id="node26" href="$cdcacm_8h.html" title="cdcacm.h" alt="" coords="911,83,989,111"/>
<area shape="rect" id="node30" href="$cdcftdi_8h.html" title="cdcftdi.h" alt="" coords="1014,83,1084,111"/>
<area shape="rect" id="node32" href="$masstorage_8h.html" title="masstorage.h" alt="" coords="1109,83,1211,111"/>
<area shape="rect" id="node34" href="$max___l_c_d_8h.html" title="max_LCD.h" alt="" coords="1235,83,1327,111"/>
<area shape="rect" id="node36" href="$message_8cpp.html" title="message.cpp" alt="" coords="1351,83,1451,111"/>
<area shape="rect" id="node37" href="$parsetools_8cpp.html" title="parsetools.cpp" alt="" coords="1475,83,1583,111"/>
<area shape="rect" id="node38" href="$_p_s3_u_s_b_8h.html" title="PS3USB.h" alt="" coords="1607,83,1691,111"/>
<area shape="rect" id="node40" href="$_usb_8cpp.html" title="Usb.cpp" alt="" coords="1716,83,1785,111"/>
<area shape="rect" id="node41" href="$usbhub_8h.html" title="usbhub.h" alt="" coords="1810,83,1885,111"/>
<area shape="rect" id="node43" href="$_x_b_o_x_o_l_d_8h.html" title="XBOXOLD.h" alt="" coords="1910,83,2007,111"/>
<area shape="rect" id="node45" href="$_x_b_o_x_r_e_c_v_8h.html" title="XBOXRECV.h" alt="" coords="2038,83,2143,111"/>
<area shape="rect" id="node47" href="$_x_b_o_x_u_s_b_8h.html" title="XBOXUSB.h" alt="" coords="2181,83,2277,111"/>
<area shape="rect" id="node3" href="$adk_8cpp.html" title="adk.cpp" alt="" coords="5,161,72,189"/>
<area shape="rect" id="node5" href="$_b_t_d_8cpp.html" title="BTD.cpp" alt="" coords="97,161,169,189"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="460,238,532,266"/>
<area shape="rect" id="node8" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="194,161,267,189"/>
<area shape="rect" id="node10" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="291,161,348,189"/>
<area shape="rect" id="node12" href="$_wii_8h.html" title="Wii.h" alt="" coords="373,161,424,189"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="453,315,539,343"/>
<area shape="rect" id="node9" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="163,238,249,266"/>
<area shape="rect" id="node11" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="275,238,345,266"/>
<area shape="rect" id="node13" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="370,238,435,266"/>
<area shape="rect" id="node15" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="499,161,575,189"/>
<area shape="rect" id="node17" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="600,161,664,189"/>
<area shape="rect" id="node18" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="688,161,825,189"/>
<area shape="rect" id="node20" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="851,161,953,189"/>
<area shape="rect" id="node16" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="556,238,645,266"/>
<area shape="rect" id="node19" href="$hidescriptorparser_8cpp.html" title="hidescriptorparser.cpp" alt="" coords="674,238,827,266"/>
<area shape="rect" id="node21" href="$hiduniversal_8cpp.html" title="hiduniversal.cpp" alt="" coords="850,238,968,266"/>
<area shape="rect" id="node23" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="979,161,1071,189"/>
<area shape="rect" id="node24" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="1095,161,1187,189"/>
<area shape="rect" id="node25" href="$cdcprolific_8cpp.html" title="cdcprolific.cpp" alt="" coords="1088,238,1193,266"/>
<area shape="rect" id="node27" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1211,161,1295,189"/>
<area shape="rect" id="node29" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1319,161,1435,189"/>
<area shape="rect" id="node31" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1459,161,1564,189"/>
<area shape="rect" id="node35" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="1732,161,1831,189"/>
<area shape="rect" id="node38" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1919,161,2008,189"/>
<area shape="rect" id="node40" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="2032,161,2143,189"/>
<area shape="rect" id="node42" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="2167,161,2285,189"/>
<area shape="rect" id="node44" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="2310,161,2420,189"/>
<area shape="rect" id="node6" href="$_b_t_h_i_d_8h.html" title="BTHID.h" alt="" coords="304,315,376,343"/>
<area shape="rect" id="node10" href="$_p_s3_b_t_8h.html" title="PS3BT.h" alt="" coords="255,161,328,189"/>
<area shape="rect" id="node12" href="$_s_p_p_8h.html" title="SPP.h" alt="" coords="359,161,416,189"/>
<area shape="rect" id="node14" href="$_wii_8h.html" title="Wii.h" alt="" coords="451,161,501,189"/>
<area shape="rect" id="node7" href="$_b_t_h_i_d_8cpp.html" title="BTHID.cpp" alt="" coords="245,393,331,421"/>
<area shape="rect" id="node8" href="$_p_s4_b_t_8h.html" title="PS4BT.h" alt="" coords="355,393,428,421"/>
<area shape="rect" id="node9" href="$_p_s4_b_t_8cpp.html" title="PS4BT.cpp" alt="" coords="348,470,435,498"/>
<area shape="rect" id="node11" href="$_p_s3_b_t_8cpp.html" title="PS3BT.cpp" alt="" coords="244,238,331,266"/>
<area shape="rect" id="node13" href="$_s_p_p_8cpp.html" title="SPP.cpp" alt="" coords="356,238,427,266"/>
<area shape="rect" id="node15" href="$_wii_8cpp.html" title="Wii.cpp" alt="" coords="451,238,516,266"/>
<area shape="rect" id="node17" href="$hidboot_8h.html" title="hidboot.h" alt="" coords="541,238,616,266"/>
<area shape="rect" id="node19" href="$hid_8cpp.html" title="hid.cpp" alt="" coords="641,238,705,266"/>
<area shape="rect" id="node20" href="$hidescriptorparser_8h.html" title="hidescriptorparser.h" alt="" coords="729,238,867,266"/>
<area shape="rect" id="node22" href="$hiduniversal_8h.html" title="hiduniversal.h" alt="" coords="892,238,995,266"/>
<area shape="rect" id="node18" href="$hidboot_8cpp.html" title="hidboot.cpp" alt="" coords="534,315,623,343"/>
<area shape="rect" id="node21" href="$hidescriptorparser_8cpp.html" title="hidescriptorparser.cpp" alt="" coords="716,315,868,343"/>
<area shape="rect" id="node23" href="$hiduniversal_8cpp.html" title="hiduniversal.cpp" alt="" coords="892,315,1009,343"/>
<area shape="rect" id="node25" href="$hidusagetitlearrays_8cpp.html" title="hidusagetitlearrays.cpp" alt="" coords="722,161,880,189"/>
<area shape="rect" id="node27" href="$cdcacm_8cpp.html" title="cdcacm.cpp" alt="" coords="904,161,996,189"/>
<area shape="rect" id="node28" href="$cdcprolific_8h.html" title="cdcprolific.h" alt="" coords="1021,161,1112,189"/>
<area shape="rect" id="node29" href="$cdcprolific_8cpp.html" title="cdcprolific.cpp" alt="" coords="1020,238,1125,266"/>
<area shape="rect" id="node31" href="$cdcftdi_8cpp.html" title="cdcftdi.cpp" alt="" coords="1136,161,1220,189"/>
<area shape="rect" id="node33" href="$masstorage_8cpp.html" title="masstorage.cpp" alt="" coords="1245,161,1360,189"/>
<area shape="rect" id="node35" href="$max___l_c_d_8cpp.html" title="max_LCD.cpp" alt="" coords="1384,161,1489,189"/>
<area shape="rect" id="node39" href="$_p_s3_u_s_b_8cpp.html" title="PS3USB.cpp" alt="" coords="1600,161,1699,189"/>
<area shape="rect" id="node42" href="$usbhub_8cpp.html" title="usbhub.cpp" alt="" coords="1787,161,1876,189"/>
<area shape="rect" id="node44" href="$_x_b_o_x_o_l_d_8cpp.html" title="XBOXOLD.cpp" alt="" coords="1900,161,2011,189"/>
<area shape="rect" id="node46" href="$_x_b_o_x_r_e_c_v_8cpp.html" title="XBOXRECV.cpp" alt="" coords="2035,161,2153,189"/>
<area shape="rect" id="node48" href="$_x_b_o_x_u_s_b_8cpp.html" title="XBOXUSB.cpp" alt="" coords="2178,161,2288,189"/>
</map>

View file

@ -1 +1 @@
19d142dcf235fa4191381f3fc2835694
5b8072c50adde9c54ed53b728fbb5f15

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 134 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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -119,16 +119,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="printhex_8h.html">printhex.h</a>&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="message_8h.html">message.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="hexdump_8h.html">hexdump.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="address_8h.html">address.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="avrpins_8h.html">avrpins.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="usb__ch9_8h.html">usb_ch9.h</a>&quot;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</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="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_core_8h.html">UsbCore.h</a>&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parsetools_8h.html">parsetools.h</a>&quot;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="confdescparser_8h.html">confdescparser.h</a>&quot;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif //_usb_h_</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sink__parser_8h.html">sink_parser.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="max3421e_8h.html">max3421e.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;<span class="preprocessor">#include &quot;<a class="code" href="avrpins_8h.html">avrpins.h</a>&quot;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</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="l00036"></a><span class="lineno"> 36</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="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_core_8h.html">UsbCore.h</a>&quot;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parsetools_8h.html">parsetools.h</a>&quot;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="confdescparser_8h.html">confdescparser.h</a>&quot;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif //_usb_h_</span></div>
<div class="ttc" id="_usb_core_8h_html"><div class="ttname"><a href="_usb_core_8h.html">UsbCore.h</a></div></div>
<div class="ttc" id="parsetools_8h_html"><div class="ttname"><a href="parsetools_8h.html">parsetools.h</a></div></div>
<div class="ttc" id="message_8h_html"><div class="ttname"><a href="message_8h.html">message.h</a></div></div>
@ -139,6 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="max3421e_8h_html"><div class="ttname"><a href="max3421e_8h.html">max3421e.h</a></div></div>
<div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
<div class="ttc" id="confdescparser_8h_html"><div class="ttname"><a href="confdescparser_8h.html">confdescparser.h</a></div></div>
<div class="ttc" id="sink__parser_8h_html"><div class="ttname"><a href="sink__parser_8h.html">sink_parser.h</a></div></div>
<div class="ttc" id="printhex_8h_html"><div class="ttname"><a href="printhex_8h.html">printhex.h</a></div></div>
<div class="ttc" id="hexdump_8h_html"><div class="ttname"><a href="hexdump_8h.html">hexdump.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@ -146,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: UsbCore.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -1078,7 +1078,7 @@ Typedefs</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: UsbCore.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -195,222 +195,245 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 107</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 108</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="l00109"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 109</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 110</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 111</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 112</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) { <span class="keywordflow">return</span>; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b"> 113</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2"> 114</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">DEVCLASSOK</a>(uint8_t klass) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 118</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738"> 108</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e"> 112</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">ConfigureDevice</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432"> 116</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">Release</a>() {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 121</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="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 124</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 125</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 126</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 129</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="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 135</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="l00136"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 136</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="l00137"></a><span class="lineno"> 137</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 139</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="l00140"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 140</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="l00141"></a><span class="lineno"> 141</span>&#160;}__attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a"> 120</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">Poll</a>() {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1"> 124</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">GetAddress</a>() {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391"> 128</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">ResetHubPort</a>(uint8_t port) {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="comment">// Note used for hubs only!</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2"> 136</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">DEVCLASSOK</a>(uint8_t klass) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">/* USB Setup Packet Structure */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html"> 142</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">union </span>{ <span class="comment">// offset description</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5"> 145</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">bmRequestType</a>; <span class="comment">// 0 Bit-map of request type</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 147</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;};</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 152</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="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; uint8_t bmHubPre;</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">public</span>:</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 160</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="l00161"></a><span class="lineno"> 161</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; };</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 164</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="l00165"></a><span class="lineno"> 165</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; };</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a690a55f65b2ce4e69c426b92004a1cc6"> 148</a></span>&#160; uint8_t recipient : 5; <span class="comment">// Recipient of the request</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ad9346ba7b7a4da6829142e23e3ba8a2f"> 149</a></span>&#160; uint8_t type : 2; <span class="comment">// Type of request</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#ab50c95fb951cdebc78c3e024de1d6d65"> 150</a></span>&#160; uint8_t direction : 1; <span class="comment">// Direction of data X-fer</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; } ReqType_u;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016"> 153</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">bRequest</a>; <span class="comment">// 1 Request</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">union </span>{</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52"> 156</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">wValue</a>; <span class="comment">// 2 Depends on bRequest</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9"> 159</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">wValueLo</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443"> 160</a></span>&#160; uint8_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">wValueHi</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } wVal_u;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e"> 163</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">wIndex</a>; <span class="comment">// 4 Depends on bRequest</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537"> 164</a></span>&#160; uint16_t <a class="code" href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">wLength</a>; <span class="comment">// 6 Depends on bRequest</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;} __attribute__((packed)) <a class="code" href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a>, *<a class="code" href="struct_s_e_t_u_p___p_k_t.html">PSETUP_PKT</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 168</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="l00169"></a><span class="lineno"> 169</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="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"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> 0;</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"> 179</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; };</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 182</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="l00183"></a><span class="lineno"> 183</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</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; 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="l00186"></a><span class="lineno"> 186</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="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// Base class for incoming data parser</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_u_s_b_read_parser.html"> 171</a></span>&#160;class <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Parse(<span class="keyword">const</span> uint16_t len, <span class="keyword">const</span> uint8_t *pbuf, <span class="keyword">const</span> uint16_t &amp;offset) = 0;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_u_s_b.html"> 176</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_s_b.html">USB</a> : <span class="keyword">public</span> <a class="code" href="class_m_a_x3421e.html">MAX3421E</a> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_address_pool_impl.html">AddressPoolImpl&lt;USB_NUMDEVICES&gt;</a> addrPool;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>* devConfig[<a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t bmHubPre;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4"> 184</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">SetHubPreMask</a>() {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; bmHubPre |= <a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; };</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</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="l00189"></a><span class="lineno"> 189</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="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</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="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</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="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</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="l00203"></a><span class="lineno"> 203</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="l00204"></a><span class="lineno"> 204</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="l00205"></a><span class="lineno"> 205</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="l00206"></a><span class="lineno"> 206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</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="l00211"></a><span class="lineno"> 211</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="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#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="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</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="l00219"></a><span class="lineno"> 219</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="l00220"></a><span class="lineno"> 220</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="l00221"></a><span class="lineno"> 221</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;};</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;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span><span class="comment">//get device descriptor</span></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;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span>( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="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="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span>( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">ResetHubPreMask</a>() {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; bmHubPre &amp;= (~<a class="code" href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a>);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; };</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4"> 192</a></span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a>&amp; <a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>() {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="class_address_pool.html">AddressPool</a>&amp;)addrPool;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; };</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2"> 196</a></span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> *pdev) {</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a>; i++) {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(!devConfig[i]) {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; devConfig[i] = pdev;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; };</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; addrPool.<a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(pfunc);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; };</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">getUsbTaskState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">setUsbTaskState</a>(uint8_t state);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a>* <a class="code" href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">getEpInfoEntry</a>(uint8_t addr, uint8_t ep);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(uint8_t addr, uint8_t epcount, <a class="code" href="struct_ep_info.html">EpInfo</a>* eprecord_ptr);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">/* Control requests */</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(uint8_t addr, uint8_t ep, uint8_t conf, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t* dataptr);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">ctrlData</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr, <span class="keywordtype">boolean</span> direction);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">ctrlStatus</a>(uint8_t ep, <span class="keywordtype">boolean</span> direction, uint16_t nak_limit);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t* data);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* data);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">dispatchPkt</a>(uint8_t token, uint8_t ep, uint16_t nak_limit);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">Task</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">DefaultAddressing</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">Configuring</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">ReleaseDevice</a>(uint8_t addr);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<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="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span>( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</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="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="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">//set configuration</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<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="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span>( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi,</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t* dataptr, <a class="code" href="class_u_s_b_read_parser.html">USBReadParser</a> *p);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">void</span> init();</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; uint8_t SetAddress(uint8_t addr, uint8_t ep, <a class="code" href="struct_ep_info.html">EpInfo</a> **ppep, uint16_t &amp;nak_limit);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t OutTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t nbytes, uint8_t *data);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint8_t InTransfer(<a class="code" href="struct_ep_info.html">EpInfo</a> *pep, uint16_t nak_limit, uint16_t *nbytesptr, uint8_t *data);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; uint8_t AttemptConfig(uint8_t driver, uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#if 0 //defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span><span class="comment">//get device descriptor</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</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;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"></span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t* dataptr) {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, 0x00, <a class="code" href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">//get configuration descriptor</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a>(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t* dataptr) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, conf, <a class="code" href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a>, 0x0000, nbytes, dataptr));</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">//get string descriptor</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a>(uint8_t addr, uint8_t ep, uint16_t nuint8_ts, uint8_t index, uint16_t langid, uint8_t* dataptr) {</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a>, <a class="code" href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a>, index, <a class="code" href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a>, langid, nuint8_ts, dataptr));</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">//set address</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a>(uint8_t oldaddr, uint8_t ep, uint8_t newaddr) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(oldaddr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a>, newaddr, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">//set configuration</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">inline</span> uint8_t <a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a>(uint8_t addr, uint8_t ep, uint8_t conf_value) {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(addr, ep, <a class="code" href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a>, <a class="code" href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a>, conf_value, 0x00, 0x0000, 0x0000, NULL));</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif // defined(USB_METHODS_INLINE)</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* USBCORE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00132">UsbCore.h:132</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00110">UsbCore.h:110</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1382f4a10a9b0774f803d1125dd9bb52"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1382f4a10a9b0774f803d1125dd9bb52">SETUP_PKT::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00156">UsbCore.h:156</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a893ea73deab98be837c257201e7da25a"><div class="ttname"><a href="class_u_s_b_device_config.html#a893ea73deab98be837c257201e7da25a">USBDeviceConfig::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00120">UsbCore.h:120</a></div></div>
<div class="ttc" id="max3421e_8h_html_a8816c259368604d0de57f31bcb6c1674"><div class="ttname"><a href="max3421e_8h.html#a8816c259368604d0de57f31bcb6c1674">bmHUBPRE</a></div><div class="ttdeci">#define bmHUBPRE</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00170">max3421e.h:170</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00111">UsbCore.h:111</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a2bfde6c290d32888a6f4e97fa1e222f1"><div class="ttname"><a href="class_u_s_b_device_config.html#a2bfde6c290d32888a6f4e97fa1e222f1">USBDeviceConfig::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00124">UsbCore.h:124</a></div></div>
<div class="ttc" id="class_u_s_b_html_a59ee57083ba492d87ff2947547848d58"><div class="ttname"><a href="class_u_s_b.html#a59ee57083ba492d87ff2947547848d58">USB::getEpInfoEntry</a></div><div class="ttdeci">EpInfo * getEpInfoEntry(uint8_t addr, uint8_t ep)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00044">Usb.cpp:44</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_abbad38caa1ca9c52f47adccd3a850aed"><div class="ttname"><a href="usb__ch9_8h.html#abbad38caa1ca9c52f47adccd3a850aed">USB_DESCRIPTOR_STRING</a></div><div class="ttdeci">#define USB_DESCRIPTOR_STRING</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00065">usb_ch9.h:65</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00140">UsbCore.h:140</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a1ec9b19c0ed1e66e399ad9cf3c4a6537"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a1ec9b19c0ed1e66e399ad9cf3c4a6537">SETUP_PKT::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00164">UsbCore.h:164</a></div></div>
<div class="ttc" id="class_m_a_x3421e_html"><div class="ttname"><a href="class_m_a_x3421e.html">MAX3421e</a></div><div class="ttdef"><b>Definition:</b> <a href="usbhost_8h_source.html#l00081">usbhost.h:81</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_a3572226ee2137c7fbf7487a02b0f560f"><div class="ttname"><a href="usb__ch9_8h.html#a3572226ee2137c7fbf7487a02b0f560f">USB_REQUEST_GET_DESCRIPTOR</a></div><div class="ttdeci">#define USB_REQUEST_GET_DESCRIPTOR</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00037">usb_ch9.h:37</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac6d0566773ed4549fe1a7a932e6c46de"><div class="ttname"><a href="usb__ch9_8h.html#ac6d0566773ed4549fe1a7a932e6c46de">USB_DESCRIPTOR_DEVICE</a></div><div class="ttdeci">#define USB_DESCRIPTOR_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00063">usb_ch9.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a0282f9f7a0313f957e02449d7313b7b5"><div class="ttname"><a href="_usb_core_8h.html#a0282f9f7a0313f957e02449d7313b7b5">USB_NUMDEVICES</a></div><div class="ttdeci">#define USB_NUMDEVICES</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00083">UsbCore.h:83</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00121">UsbCore.h:121</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_aef77a1e62f78c04a1aad53e8795ec89e"><div class="ttname"><a href="class_u_s_b_device_config.html#aef77a1e62f78c04a1aad53e8795ec89e">USBDeviceConfig::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a9bbd6cf5a93a6433d2eb97c59b9102d5"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a9bbd6cf5a93a6433d2eb97c59b9102d5">SETUP_PKT::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00145">UsbCore.h:145</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aa17b365c4eb8bd2f6a4d4e4fb5f881c7"><div class="ttname"><a href="usb__ch9_8h.html#aa17b365c4eb8bd2f6a4d4e4fb5f881c7">USB_DESCRIPTOR_CONFIGURATION</a></div><div class="ttdeci">#define USB_DESCRIPTOR_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00064">usb_ch9.h:64</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00164">UsbCore.h:164</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5b4de045ea7fefe0fab967ddf44c39b1"><div class="ttname"><a href="class_u_s_b.html#a5b4de045ea7fefe0fab967ddf44c39b1">USB::ResetHubPreMask</a></div><div class="ttdeci">void ResetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00188">UsbCore.h:188</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="class_u_s_b_html_ab18915ffbd8a70ac5bd6abc3e0f3c66a"><div class="ttname"><a href="class_u_s_b.html#ab18915ffbd8a70ac5bd6abc3e0f3c66a">USB::ctrlStatus</a></div><div class="ttdeci">uint8_t ctrlStatus(uint8_t ep, boolean direction, uint16_t nak_limit)</div></div>
<div class="ttc" id="class_u_s_b_html_a8ff8cd03496bdcb0ca26f18878ad299d"><div class="ttname"><a href="class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d">USB::USB</a></div><div class="ttdeci">USB(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00025">Usb.cpp:25</a></div></div>
<div class="ttc" id="address_8h_html_a90edb051235924cb5280032df397f393"><div class="ttname"><a href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a></div><div class="ttdeci">void(* UsbDeviceHandleFunc)(UsbDevice *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00139">UsbCore.h:139</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00160">UsbCore.h:160</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a299d9f88d294369ea88b48b5026f4c7e"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a299d9f88d294369ea88b48b5026f4c7e">SETUP_PKT::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00163">UsbCore.h:163</a></div></div>
<div class="ttc" id="class_u_s_b_html_aedcc6c06badd14b6fd3b0dda94269ad4"><div class="ttname"><a href="class_u_s_b.html#aedcc6c06badd14b6fd3b0dda94269ad4">USB::SetHubPreMask</a></div><div class="ttdeci">void SetHubPreMask()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00184">UsbCore.h:184</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8ff697d334dc611720419374acd1e5fb"><div class="ttname"><a href="class_u_s_b.html#a8ff697d334dc611720419374acd1e5fb">USB::setUsbTaskState</a></div><div class="ttdeci">void setUsbTaskState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00040">Usb.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00290">Usb.cpp:290</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a060f3a6423f1e3640aa7b14d5ce72285"><div class="ttname"><a href="_usb_core_8h.html#a060f3a6423f1e3640aa7b14d5ce72285">bmREQ_GET_DESCR</a></div><div class="ttdeci">#define bmREQ_GET_DESCR</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00031">UsbCore.h:31</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00112">UsbCore.h:112</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a12bb63558ded5bb6661bb173b07ff391"><div class="ttname"><a href="class_u_s_b_device_config.html#a12bb63558ded5bb6661bb173b07ff391">USBDeviceConfig::ResetHubPort</a></div><div class="ttdeci">virtual void ResetHubPort(uint8_t port)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00128">UsbCore.h:128</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ad4929f74079f3bc22b00936ae84d18b0"><div class="ttname"><a href="_usb_core_8h.html#ad4929f74079f3bc22b00936ae84d18b0">USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</a></div><div class="ttdeci">#define USB_ERROR_UNABLE_TO_REGISTER_DEVICE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00063">UsbCore.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00788">Usb.cpp:788</a></div></div>
<div class="ttc" id="class_u_s_b_html_a372ecbe1d23955e8b04b5e95e0e4a833"><div class="ttname"><a href="class_u_s_b.html#a372ecbe1d23955e8b04b5e95e0e4a833">USB::getStrDescr</a></div><div class="ttdeci">uint8_t getStrDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t index, uint16_t langid, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00791">Usb.cpp:791</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_ac87659819bfd6491120c819fae2d46bc"><div class="ttname"><a href="usb__ch9_8h.html#ac87659819bfd6491120c819fae2d46bc">USB_REQUEST_SET_ADDRESS</a></div><div class="ttdeci">#define USB_REQUEST_SET_ADDRESS</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00036">usb_ch9.h:36</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae8ea2a106e94f5bb20be2fcbd4e402fb"><div class="ttname"><a href="_usb_core_8h.html#ae8ea2a106e94f5bb20be2fcbd4e402fb">MAX3421E</a></div><div class="ttdeci">MAX3421e&lt; P10, P9 &gt; MAX3421E</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00027">UsbCore.h:27</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00147">UsbCore.h:147</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00118">UsbCore.h:118</a></div></div>
<div class="ttc" id="class_u_s_b_read_parser_html"><div class="ttname"><a href="class_u_s_b_read_parser.html">USBReadParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00171">UsbCore.h:171</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html">SETUP_PKT</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00142">UsbCore.h:142</a></div></div>
<div class="ttc" id="class_u_s_b_html_a1c1aad8269403bf488e3bc4c79886ce4"><div class="ttname"><a href="class_u_s_b.html#a1c1aad8269403bf488e3bc4c79886ce4">USB::getUsbTaskState</a></div><div class="ttdeci">uint8_t getUsbTaskState(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00036">Usb.cpp:36</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00422">Usb.cpp:422</a></div></div>
<div class="ttc" id="class_u_s_b_html_aff8d1b2009c760bc27fb12762bd3c9b6"><div class="ttname"><a href="class_u_s_b.html#aff8d1b2009c760bc27fb12762bd3c9b6">USB::Task</a></div><div class="ttdeci">void Task(void)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00424">Usb.cpp:424</a></div></div>
<div class="ttc" id="class_address_pool_impl_html"><div class="ttname"><a href="class_address_pool_impl.html">AddressPoolImpl&lt; USB_NUMDEVICES &gt;</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a7f13c42ed2c8e72e1f63562576ca82d2"><div class="ttname"><a href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00114">UsbCore.h:114</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00185">address.h:185</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a7f13c42ed2c8e72e1f63562576ca82d2"><div class="ttname"><a href="class_u_s_b_device_config.html#a7f13c42ed2c8e72e1f63562576ca82d2">USBDeviceConfig::DEVCLASSOK</a></div><div class="ttdeci">virtual boolean DEVCLASSOK(uint8_t klass)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00136">UsbCore.h:136</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00191">address.h:191</a></div></div>
<div class="ttc" id="class_u_s_b_html_a994f9488ac6f91040c42d9b816d202c6"><div class="ttname"><a href="class_u_s_b.html#a994f9488ac6f91040c42d9b816d202c6">USB::ctrlData</a></div><div class="ttdeci">uint8_t ctrlData(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr, boolean direction)</div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00374">Usb.cpp:374</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00107">UsbCore.h:107</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00650">Usb.cpp:650</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a1cf695242e2e22893eea9c892282221b"><div class="ttname"><a href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00113">UsbCore.h:113</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00129">UsbCore.h:129</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00109">UsbCore.h:109</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="class_u_s_b_html_a343d4b321cf8e99f0504cb04c7ce8b10"><div class="ttname"><a href="class_u_s_b.html#a343d4b321cf8e99f0504cb04c7ce8b10">USB::dispatchPkt</a></div><div class="ttdeci">uint8_t dispatchPkt(uint8_t token, uint8_t ep, uint16_t nak_limit)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00376">Usb.cpp:376</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a3706cf6b18785aff823171e280bab738"><div class="ttname"><a href="class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738">USBDeviceConfig::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00108">UsbCore.h:108</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html_af4008dfc1c2d15c23cf8a7815cc17765"><div class="ttname"><a href="class_u_s_b.html#af4008dfc1c2d15c23cf8a7815cc17765">USB::Configuring</a></div><div class="ttdeci">uint8_t Configuring(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00652">Usb.cpp:652</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a1cf695242e2e22893eea9c892282221b"><div class="ttname"><a href="class_u_s_b_device_config.html#a1cf695242e2e22893eea9c892282221b">USBDeviceConfig::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00132">UsbCore.h:132</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a321b931277d6ce278416dc5d74059016"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a321b931277d6ce278416dc5d74059016">SETUP_PKT::bRequest</a></div><div class="ttdeci">uint8_t bRequest</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00153">UsbCore.h:153</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html_a61e301efedae55c6ac12c6cce154e432"><div class="ttname"><a href="class_u_s_b_device_config.html#a61e301efedae55c6ac12c6cce154e432">USBDeviceConfig::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00116">UsbCore.h:116</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af4965e768593007eacde7644979f56da"><div class="ttname"><a href="_usb_core_8h.html#af4965e768593007eacde7644979f56da">bmREQ_SET</a></div><div class="ttdeci">#define bmREQ_SET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00032">UsbCore.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00182">UsbCore.h:182</a></div></div>
<div class="ttc" id="class_u_s_b_html_a8346db8f2219f65257d735834940bc42"><div class="ttname"><a href="class_u_s_b.html#a8346db8f2219f65257d735834940bc42">USB::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00206">UsbCore.h:206</a></div></div>
<div class="ttc" id="usb__ch9_8h_html_aadef005acc40340955d34d9767ef297c"><div class="ttname"><a href="usb__ch9_8h.html#aadef005acc40340955d34d9767ef297c">USB_REQUEST_SET_CONFIGURATION</a></div><div class="ttdeci">#define USB_REQUEST_SET_CONFIGURATION</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00040">usb_ch9.h:40</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00136">UsbCore.h:136</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00528">Usb.cpp:528</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00135">UsbCore.h:135</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00744">Usb.cpp:744</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a04ea2d151f9edb6575fc159a58f1e443"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a04ea2d151f9edb6575fc159a58f1e443">SETUP_PKT::wValueHi</a></div><div class="ttdeci">uint8_t wValueHi</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00160">UsbCore.h:160</a></div></div>
<div class="ttc" id="class_u_s_b_html_a5eb0d31372d26f0015a0d7be0b9ff4e1"><div class="ttname"><a href="class_u_s_b.html#a5eb0d31372d26f0015a0d7be0b9ff4e1">USB::DefaultAddressing</a></div><div class="ttdeci">uint8_t DefaultAddressing(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00530">Usb.cpp:530</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="struct_s_e_t_u_p___p_k_t_html_a68c9436c00560f96e044052c3fb681e9"><div class="ttname"><a href="struct_s_e_t_u_p___p_k_t.html#a68c9436c00560f96e044052c3fb681e9">SETUP_PKT::wValueLo</a></div><div class="ttdeci">uint8_t wValueLo</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00159">UsbCore.h:159</a></div></div>
<div class="ttc" id="class_u_s_b_html_ac681c6c98e1641f705bc14d670a2663a"><div class="ttname"><a href="class_u_s_b.html#ac681c6c98e1641f705bc14d670a2663a">USB::ReleaseDevice</a></div><div class="ttdeci">uint8_t ReleaseDevice(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00746">Usb.cpp:746</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,24 +104,25 @@ Include dependency graph for Wii.cpp:</div>
<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>
<tr class="separator:af83672eccf0c7a02847ce75bc5c55a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3392eea150ac9151bef45148f0d7895"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#af3392eea150ac9151bef45148f0d7895">BUTTONS</a> []</td></tr>
<tr class="separator:af3392eea150ac9151bef45148f0d7895"><td class="memSeparator" colspan="2">&#160;</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>
<tr class="memitem:ac7b2bb3deb6df67209b21af40412bc11"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#ac7b2bb3deb6df67209b21af40412bc11">WII_LEDS</a> []</td></tr>
<tr class="separator:ac7b2bb3deb6df67209b21af40412bc11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d337633602049d2bb899db0cd9a0c9"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#a38d337633602049d2bb899db0cd9a0c9">WII_BUTTONS</a> []</td></tr>
<tr class="separator:a38d337633602049d2bb899db0cd9a0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a819f2ef1f3b8cc12608f0635606866bb"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8cpp.html#a819f2ef1f3b8cc12608f0635606866bb">WII_PROCONTROLLER_BUTTONS</a> []</td></tr>
<tr class="separator:a819f2ef1f3b8cc12608f0635606866bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="af83672eccf0c7a02847ce75bc5c55a1a"></a>
<a class="anchor" id="ac7b2bb3deb6df67209b21af40412bc11"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t LEDS[]</td>
<td class="memname">const uint8_t WII_LEDS[]</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> 0x00, </div>
<div class="line"> 0x10, </div>
<div class="line"> 0x20, </div>
<div class="line"> 0x40, </div>
@ -132,19 +133,19 @@ Variables</h2></td></tr>
<div class="line"> 0xC0, </div>
<div class="line"> 0xD0, </div>
<div class="line"> 0xE0, </div>
<div class="line"> 0xF0 </div>
<div class="line"> 0xF0, </div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00025">25</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="af3392eea150ac9151bef45148f0d7895"></a>
<a class="anchor" id="a38d337633602049d2bb899db0cd9a0c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint32_t BUTTONS[]</td>
<td class="memname">const uint32_t WII_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
@ -165,19 +166,19 @@ Variables</h2></td></tr>
<div class="line"> 0x20000, </div>
<div class="line"></div>
<div class="line"> 0x00400, </div>
<div class="line"> 0x00800 </div>
<div class="line"> 0x00800, </div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00039">39</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00040">40</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
</div>
</div>
<a class="anchor" id="a6571a59427c954eefde75bb40f02443e"></a>
<a class="anchor" id="a819f2ef1f3b8cc12608f0635606866bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint32_t PROCONTROLLERBUTTONS[]</td>
<td class="memname">const uint32_t WII_PROCONTROLLER_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
@ -204,10 +205,10 @@ Variables</h2></td></tr>
<div class="line"> 0x00020, </div>
<div class="line"> 0x00002, </div>
<div class="line"> 0x08000, </div>
<div class="line"> 0x00400 </div>
<div class="line"> 0x00400, </div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00058">58</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
<p>Definition at line <a class="el" href="_wii_8cpp_source.html#l00059">59</a> of file <a class="el" href="_wii_8cpp_source.html">Wii.cpp</a>.</p>
</div>
</div>
@ -216,7 +217,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -119,531 +119,36 @@ 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:a8a70a2d3fd20f9005aa8dc5849beb147"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a8a70a2d3fd20f9005aa8dc5849beb147">WIICAMERA</a></td></tr>
<tr class="separator:a8a70a2d3fd20f9005aa8dc5849beb147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919">L2CAP_WAIT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a15cc1db556ad9a4ec6144ca8a42f8919"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b">L2CAP_CONTROL_SUCCESS</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:abac08b5b24a1cd2b12517cd9aa6c616b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b">L2CAP_INTERRUPT_SETUP</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ac7aa7fd7a8a34a6c9e420e3cb114737b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68bcdd68c269cd7970d5271a00bbe5fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe">L2CAP_CONTROL_CONNECT_REQUEST</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a68bcdd68c269cd7970d5271a00bbe5fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf733ee2c84bd8df4d24f2ae1f3b378"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378">L2CAP_CONTROL_CONFIG_REQUEST</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:aaaf733ee2c84bd8df4d24f2ae1f3b378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0b913a7e9e54b1f6ab95d82bd36f954"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954">L2CAP_INTERRUPT_CONNECT_REQUEST</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:af0b913a7e9e54b1f6ab95d82bd36f954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e3a81d9a8850075fd10933acc5a035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a73e3a81d9a8850075fd10933acc5a035">L2CAP_INTERRUPT_CONFIG_REQUEST</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a73e3a81d9a8850075fd10933acc5a035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44edf5415459cba3cc378992fef7560b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a44edf5415459cba3cc378992fef7560b">L2CAP_CHECK_MOTION_PLUS_STATE</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:a44edf5415459cba3cc378992fef7560b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84d043703110a74ba9b8d7afa30c5de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ab84d043703110a74ba9b8d7afa30c5de">L2CAP_CHECK_EXTENSION_STATE</a>&#160;&#160;&#160;8</td></tr>
<tr class="separator:ab84d043703110a74ba9b8d7afa30c5de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a291cf8ab9832ac643cdbeaa5f0b84ed1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a291cf8ab9832ac643cdbeaa5f0b84ed1">L2CAP_INIT_MOTION_PLUS_STATE</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a291cf8ab9832ac643cdbeaa5f0b84ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11f7dbb22bf86e28848abc165e22c2de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a11f7dbb22bf86e28848abc165e22c2de">L2CAP_LED_STATE</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:a11f7dbb22bf86e28848abc165e22c2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ae4da52ca67e1f8b977199b24e8f3a400">L2CAP_DONE</a>&#160;&#160;&#160;11</td></tr>
<tr class="separator:ae4da52ca67e1f8b977199b24e8f3a400"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ab569b2085ad29f41d1da9c0ed352bd65">L2CAP_INTERRUPT_DISCONNECT</a>&#160;&#160;&#160;12</td></tr>
<tr class="separator:ab569b2085ad29f41d1da9c0ed352bd65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a9b5140e7ca5941e5535c575255ffc1cc">L2CAP_CONTROL_DISCONNECT</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:a9b5140e7ca5941e5535c575255ffc1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e5a9c283f0912833f3e0418d3feadd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>&#160;&#160;&#160;0x001</td></tr>
<tr class="separator:a2e5a9c283f0912833f3e0418d3feadd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad823543553cc7500ac49d7479eb858f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>&#160;&#160;&#160;0x002</td></tr>
<tr class="separator:aad823543553cc7500ac49d7479eb858f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c444d5d06ec604820d426556c2f38d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>&#160;&#160;&#160;0x004</td></tr>
<tr class="separator:a0c444d5d06ec604820d426556c2f38d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>&#160;&#160;&#160;0x008</td></tr>
<tr class="separator:a2b3cdcd3124251a40ce825da0d8dcb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27057737ae0b2246442511c01eeed192"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>&#160;&#160;&#160;0x040</td></tr>
<tr class="separator:a27057737ae0b2246442511c01eeed192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc096a05301f3cbdece4ad372cc149c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>&#160;&#160;&#160;0x080</td></tr>
<tr class="separator:acc096a05301f3cbdece4ad372cc149c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a969a1ee84797f3ee5006c41f67373f96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="separator:a969a1ee84797f3ee5006c41f67373f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015f3b25bd7a2908c84b973dec453f45"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>&#160;&#160;&#160;0x200</td></tr>
<tr class="separator:a015f3b25bd7a2908c84b973dec453f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaec1ddc53593c80dc625c1f361e3a24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#acaec1ddc53593c80dc625c1f361e3a24">l2cap_connected_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)</td></tr>
<tr class="separator:acaec1ddc53593c80dc625c1f361e3a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac72a2b645fafc5bdbd85c1f59cc937cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc">l2cap_connected_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)</td></tr>
<tr class="separator:ac72a2b645fafc5bdbd85c1f59cc937cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a39a58b19fb4ef26cf503ed57a43570a4">l2cap_config_success_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td></tr>
<tr class="separator:a39a58b19fb4ef26cf503ed57a43570a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a9b3e87e1f460bc011e69f5e53e79c104">l2cap_config_success_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td></tr>
<tr class="separator:a9b3e87e1f460bc011e69f5e53e79c104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0cab74308e812106252c53b18c0391"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a7f0cab74308e812106252c53b18c0391">l2cap_disconnect_response_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td></tr>
<tr class="separator:a7f0cab74308e812106252c53b18c0391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667178a4486c4dee88e052b3562362cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a667178a4486c4dee88e052b3562362cd">l2cap_disconnect_response_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td></tr>
<tr class="separator:a667178a4486c4dee88e052b3562362cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d">l2cap_connection_request_control_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td></tr>
<tr class="separator:a728c7d92dd341dcc1b8f4bf95bb4826d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fa7bceb44bbdff3229fd431627b9868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a9fa7bceb44bbdff3229fd431627b9868">l2cap_connection_request_interrupt_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td></tr>
<tr class="separator:a9fa7bceb44bbdff3229fd431627b9868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34631633d4557244dc8eda52e8505acd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>&#160;&#160;&#160;0x400</td></tr>
<tr class="memitem:a34631633d4557244dc8eda52e8505acd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="separator:a34631633d4557244dc8eda52e8505acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0ff99c8862a05df8877329982e1ef61"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>&#160;&#160;&#160;0x800</td></tr>
<tr class="memitem:ae0ff99c8862a05df8877329982e1ef61"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="separator:ae0ff99c8862a05df8877329982e1ef61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d4b4f06162f96e91d97650f5c2e60f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a3d4b4f06162f96e91d97650f5c2e60f7">motion_plus_connected_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>)</td></tr>
<tr class="separator:a3d4b4f06162f96e91d97650f5c2e60f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ae9154397104e4df34302ed0884bbfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a7ae9154397104e4df34302ed0884bbfb">nunchuck_connected_flag</a>&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>)</td></tr>
<tr class="separator:a7ae9154397104e4df34302ed0884bbfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac551aee34d131e9407d9e0ede81e9cbe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ac551aee34d131e9407d9e0ede81e9cbe">wii_check_flag</a>(flag)&#160;&#160;&#160;(wii_event_flag &amp; (flag))</td></tr>
<tr class="separator:ac551aee34d131e9407d9e0ede81e9cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae72da8cfcaaad9b910ff14e08b72f60d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d">wii_set_flag</a>(flag)&#160;&#160;&#160;(wii_event_flag |= (flag))</td></tr>
<tr class="separator:ae72da8cfcaaad9b910ff14e08b72f60d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac88349598e4482a310450e34af9b7ce3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3">wii_clear_flag</a>(flag)&#160;&#160;&#160;(wii_event_flag &amp;= ~(flag))</td></tr>
<tr class="separator:ac88349598e4482a310450e34af9b7ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3edd2b2fd262b698309012868fad0be7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7">Hat</a> { <a class="el" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a> = 0,
<a class="el" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b">HatY</a> = 1
<tr class="memitem:ad79e49e27b025d6ac9d695c4816f84d4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a> { <a class="el" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a> = 0,
<a class="el" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b">HatY</a> = 1
}</td></tr>
<tr class="separator:a3edd2b2fd262b698309012868fad0be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:ad79e49e27b025d6ac9d695c4816f84d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a8a70a2d3fd20f9005aa8dc5849beb147"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WIICAMERA</td>
</tr>
</table>
</div><div class="memdoc">
<p>You will have to uncomment this to use the IR camera </p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00027">27</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a15cc1db556ad9a4ec6144ca8a42f8919"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_WAIT&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00030">30</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="abac08b5b24a1cd2b12517cd9aa6c616b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_SUCCESS&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00033">33</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac7aa7fd7a8a34a6c9e420e3cb114737b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_SETUP&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00034">34</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a68bcdd68c269cd7970d5271a00bbe5fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_CONNECT_REQUEST&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00037">37</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="aaaf733ee2c84bd8df4d24f2ae1f3b378"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_CONFIG_REQUEST&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00038">38</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="af0b913a7e9e54b1f6ab95d82bd36f954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_CONNECT_REQUEST&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00039">39</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a73e3a81d9a8850075fd10933acc5a035"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_CONFIG_REQUEST&#160;&#160;&#160;6</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00041">41</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a44edf5415459cba3cc378992fef7560b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CHECK_MOTION_PLUS_STATE&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00043">43</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab84d043703110a74ba9b8d7afa30c5de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CHECK_EXTENSION_STATE&#160;&#160;&#160;8</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00044">44</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a291cf8ab9832ac643cdbeaa5f0b84ed1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INIT_MOTION_PLUS_STATE&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00045">45</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a11f7dbb22bf86e28848abc165e22c2de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_LED_STATE&#160;&#160;&#160;10</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00046">46</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae4da52ca67e1f8b977199b24e8f3a400"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_DONE&#160;&#160;&#160;11</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00047">47</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab569b2085ad29f41d1da9c0ed352bd65"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_INTERRUPT_DISCONNECT&#160;&#160;&#160;12</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00049">49</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b5140e7ca5941e5535c575255ffc1cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_CONTROL_DISCONNECT&#160;&#160;&#160;13</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00050">50</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2e5a9c283f0912833f3e0418d3feadd7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONTROL_CONNECTED&#160;&#160;&#160;0x001</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00053">53</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="aad823543553cc7500ac49d7479eb858f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_INTERRUPT_CONNECTED&#160;&#160;&#160;0x002</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00054">54</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0c444d5d06ec604820d426556c2f38d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS&#160;&#160;&#160;0x004</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00055">55</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2b3cdcd3124251a40ce825da0d8dcb6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS&#160;&#160;&#160;0x008</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00056">56</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a27057737ae0b2246442511c01eeed192"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE&#160;&#160;&#160;0x040</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00057">57</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="acc096a05301f3cbdece4ad372cc149c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE&#160;&#160;&#160;0x080</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00058">58</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a969a1ee84797f3ee5006c41f67373f96"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST&#160;&#160;&#160;0x100</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00059">59</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a015f3b25bd7a2908c84b973dec453f45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST&#160;&#160;&#160;0x200</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00060">60</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="acaec1ddc53593c80dc625c1f361e3a24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connected_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7">L2CAP_FLAG_CONTROL_CONNECTED</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00063">63</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac72a2b645fafc5bdbd85c1f59cc937cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connected_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f">L2CAP_FLAG_INTERRUPT_CONNECTED</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00064">64</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a39a58b19fb4ef26cf503ed57a43570a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7">L2CAP_FLAG_CONFIG_CONTROL_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00065">65</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9b3e87e1f460bc011e69f5e53e79c104"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_config_success_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f">L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00066">66</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7f0cab74308e812106252c53b18c0391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192">L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00067">67</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a667178a4486c4dee88e052b3562362cd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_disconnect_response_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3">L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00068">68</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a728c7d92dd341dcc1b8f4bf95bb4826d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_control_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96">L2CAP_FLAG_CONNECTION_CONTROL_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00069">69</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9fa7bceb44bbdff3229fd431627b9868"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define l2cap_connection_request_interrupt_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45">L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00070">70</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a34631633d4557244dc8eda52e8505acd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WII_FLAG_MOTION_PLUS_CONNECTED&#160;&#160;&#160;0x400</td>
<td class="memname">#define WII_FLAG_MOTION_PLUS_CONNECTED&#160;&#160;&#160;0x01</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00073">73</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00027">27</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
@ -652,64 +157,90 @@ Enumerations</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WII_FLAG_NUNCHUCK_CONNECTED&#160;&#160;&#160;0x800</td>
<td class="memname">#define WII_FLAG_NUNCHUCK_CONNECTED&#160;&#160;&#160;0x02</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00074">74</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00028">28</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3d4b4f06162f96e91d97650f5c2e60f7"></a>
<a class="anchor" id="ac551aee34d131e9407d9e0ede81e9cbe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define motion_plus_connected_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd">WII_FLAG_MOTION_PLUS_CONNECTED</a>)</td>
<td class="memname">#define wii_check_flag</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">flag</td><td>)</td>
<td>&#160;&#160;&#160;(wii_event_flag &amp; (flag))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00076">76</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00030">30</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7ae9154397104e4df34302ed0884bbfb"></a>
<a class="anchor" id="ae72da8cfcaaad9b910ff14e08b72f60d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define nunchuck_connected_flag&#160;&#160;&#160;(l2cap_event_flag &amp; <a class="el" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61">WII_FLAG_NUNCHUCK_CONNECTED</a>)</td>
<td class="memname">#define wii_set_flag</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">flag</td><td>)</td>
<td>&#160;&#160;&#160;(wii_event_flag |= (flag))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00077">77</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00031">31</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac88349598e4482a310450e34af9b7ce3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define wii_clear_flag</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">flag</td><td>)</td>
<td>&#160;&#160;&#160;(wii_event_flag &amp;= ~(flag))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00032">32</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a3edd2b2fd262b698309012868fad0be7"></a>
<a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7">Hat</a></td>
<td class="memname">enum <a class="el" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enum used to read the joystick on the Nunchuck. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d"></a>HatX</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"></a>HatX</em>&#160;</td><td class="fielddoc">
<p>Read the x-axis on the Nunchuck joystick. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b"></a>HatY</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"></a>HatY</em>&#160;</td><td class="fielddoc">
<p>Read the y-axis on the Nunchuck joystick. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00080">80</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
<p>Definition at line <a class="el" href="_wii_8h_source.html#l00035">35</a> of file <a class="el" href="_wii_8h_source.html">Wii.h</a>.</p>
</div>
</div>
@ -718,7 +249,7 @@ Enumerations</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -114,385 +114,346 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_b_t_d_8h.html">BTD.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_enums_8h.html">controllerEnums.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_wii_8h.html#a8a70a2d3fd20f9005aa8dc5849beb147"> 27</a></span>&#160;<span class="preprocessor">#define WIICAMERA</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">/* Bluetooth L2CAP states for L2CAP_task() */</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_wii_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 30</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// These states are used if the Wiimote is the host</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_wii_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 33</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 1</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 34</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 2</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// These states are used if the Arduino is the host</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_wii_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 37</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 3</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_wii_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 38</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 4</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_wii_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 39</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 5</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_wii_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 41</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 6</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_wii_8h.html#a44edf5415459cba3cc378992fef7560b"> 43</a></span>&#160;<span class="preprocessor">#define L2CAP_CHECK_MOTION_PLUS_STATE 7</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_wii_8h.html#ab84d043703110a74ba9b8d7afa30c5de"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CHECK_EXTENSION_STATE 8</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_wii_8h.html#a291cf8ab9832ac643cdbeaa5f0b84ed1"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_INIT_MOTION_PLUS_STATE 9</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_wii_8h.html#a11f7dbb22bf86e28848abc165e22c2de"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_LED_STATE 10</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_DONE 11</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"><a class="line" href="_wii_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 49</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 12</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_wii_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 50</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 13</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">/* L2CAP event flags */</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_wii_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 53</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED 0x001</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_wii_8h.html#aad823543553cc7500ac49d7479eb858f"> 54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED 0x002</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_wii_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS 0x004</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_wii_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS 0x008</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_wii_8h.html#a27057737ae0b2246442511c01eeed192"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE 0x040</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_wii_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 58</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE 0x080</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_wii_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 59</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST 0x100</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_wii_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 60</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST 0x200</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_wii_8h.html#acaec1ddc53593c80dc625c1f361e3a24"> 63</a></span>&#160;<span class="preprocessor">#define l2cap_connected_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONTROL_CONNECTED)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac72a2b645fafc5bdbd85c1f59cc937cc"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connected_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_INTERRUPT_CONNECTED)</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_wii_8h.html#a39a58b19fb4ef26cf503ed57a43570a4"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_CONTROL_SUCCESS)</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_wii_8h.html#a9b3e87e1f460bc011e69f5e53e79c104"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_config_success_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_wii_8h.html#a7f0cab74308e812106252c53b18c0391"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_wii_8h.html#a667178a4486c4dee88e052b3562362cd"> 68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_disconnect_response_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_wii_8h.html#a728c7d92dd341dcc1b8f4bf95bb4826d"> 69</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_control_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_CONTROL_REQUEST)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_wii_8h.html#a9fa7bceb44bbdff3229fd431627b9868"> 70</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define l2cap_connection_request_interrupt_flag (l2cap_event_flag &amp; L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST)</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">/* Wii event flags */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd"> 73</a></span>&#160;<span class="preprocessor">#define WII_FLAG_MOTION_PLUS_CONNECTED 0x400</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61"> 74</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_FLAG_NUNCHUCK_CONNECTED 0x800</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_wii_8h.html#a3d4b4f06162f96e91d97650f5c2e60f7"> 76</a></span>&#160;<span class="preprocessor">#define motion_plus_connected_flag (l2cap_event_flag &amp; WII_FLAG_MOTION_PLUS_CONNECTED)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_wii_8h.html#a7ae9154397104e4df34302ed0884bbfb"> 77</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define nunchuck_connected_flag (l2cap_event_flag &amp; WII_FLAG_NUNCHUCK_CONNECTED)</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7"> 80</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7">Hat</a> {</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d"> 82</a></span>&#160; <a class="code" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a> = 0,</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b"> 84</a></span>&#160; <a class="code" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b">HatY</a> = 1,</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;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_w_i_i.html"> 92</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_i_i.html">WII</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_w_i_i.html#a6597cb0e240a8ccb4ebdb236daef712e">WII</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">pair</a> = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">ACLData</a>(uint8_t* <a class="code" href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">ACLData</a>);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72">Run</a>();</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">Reset</a>();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">disconnect</a>();</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#acf4b3ef0a4fa0cf71133a22213361288">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#adbf9ccb1725dc432e07ca19468713116">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608"> 131</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>();</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; uint8_t <a class="code" href="class_w_i_i.html#ab16e907132354be9848fd91a6a5171db">getAnalogHat</a>(<a class="code" href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7">Hat</a> a);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uint16_t <a class="code" href="class_w_i_i.html#ab16e907132354be9848fd91a6a5171db">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a748172bd57804856594ea8e21601319e"> 152</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a748172bd57804856594ea8e21601319e">getPitch</a>() {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</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="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> compPitch;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">getWiimotePitch</a>();</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;</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03"> 162</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03">getRoll</a>() {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</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="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> compRoll;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">getWiimoteRoll</a>();</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; };</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11"> 174</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11">getYaw</a>() {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">gyroYaw</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; };</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a6e97bfcfb134b63d7190ba1bc326e1d3">setAllOff</a>();</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a2c5c32841b020b248f757cb793acb936">setRumbleOff</a>();</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">setRumbleOn</a>();</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a841396b533cccccb05db37d35f6fef9c">setRumbleToggle</a>();</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4"> 193</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">setLedOff</a>() {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">setLedRaw</a>(0);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a3a7b9dd571c5a8597bfb194000bd517c">setLedOn</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#af7755e2b2a161a550c99de2ca1018ce3">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> a);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a5d3b4a33ebc2ca9ebb154e10a05dbdd4">setLedStatus</a>();</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint8_t <a class="code" href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">getBatteryLevel</a>();</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac"> 229</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac">getWiiState</a>() {</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> wiiState;</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;</div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387"> 237</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa"> 239</a></span>&#160; };</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">wiimoteConnected</a>;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8"> 246</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c"> 248</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16"> 250</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">wiiUProControllerConnected</a>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">/* IMU Data, might be usefull if you need to do something more advanced than just calculating the angle */</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4"> 257</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">getWiimotePitch</a>() {</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">accYwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>) + PI) * RAD_TO_DEG;</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"><a class="line" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60"> 260</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">getWiimoteRoll</a>() {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">accXwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; };</div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f"> 267</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f">getNunchuckPitch</a>() {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">accYnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; };</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98"> 270</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98">getNunchuckRoll</a>() {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">accXnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8"> 272</a></span>&#160; };</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; int16_t <a class="code" href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">accXwiimote</a>, <a class="code" href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">accYwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6"> 278</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">accXnunchuck</a>, <a class="code" href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">accYnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">/* Variables for the gyro inside the Motion Plus */</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4"> 283</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4">gyroPitch</a>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8"> 285</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8">gyroRoll</a>;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62"> 287</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">gyroYaw</a>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded"> 291</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded">pitchGyroSpeed</a>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84"> 292</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84">rollGyroSpeed</a>;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6"> 293</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6">yawGyroSpeed</a>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a"> 298</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a">pitchGyroScale</a>;</div>
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331"> 299</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331">rollGyroScale</a>;</div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73"> 300</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73">yawGyroScale</a>;</div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea"> 305</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea">gyroYawRaw</a>;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8"> 306</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8">gyroRollRaw</a>;</div>
<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544"> 307</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">gyroPitchRaw</a>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2"> 312</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">gyroYawZero</a>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9"> 313</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">gyroRollZero</a>;</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3"> 314</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">gyroPitchZero</a>;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">IRinitialize</a>();</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d"> 328</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d">getIRx1</a>() {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> IR_object_x1;</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="l00336"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9"> 336</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9">getIRy1</a>() {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">return</span> IR_object_y1;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; };</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421"> 344</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421">getIRs1</a>() {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> IR_object_s1;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084"> 352</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084">getIRx2</a>() {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> IR_object_x2;</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;</div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d"> 360</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d">getIRy2</a>() {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> IR_object_y2;</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; };</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46"> 368</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46">getIRs2</a>() {</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> IR_object_s2;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; };</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e"> 376</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e">getIRx3</a>() {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> IR_object_x3;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; };</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d"> 384</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d">getIRy3</a>() {</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> IR_object_y3;</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;</div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e"> 392</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e">getIRs3</a>() {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> IR_object_s3;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; };</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66"> 400</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66">getIRx4</a>() {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> IR_object_x4;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; };</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a"> 408</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a">getIRy4</a>() {</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> IR_object_y4;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; };</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">/* Wii event flags */</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_wii_8h.html#a34631633d4557244dc8eda52e8505acd"> 27</a></span>&#160;<span class="preprocessor">#define WII_FLAG_MOTION_PLUS_CONNECTED 0x01</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae0ff99c8862a05df8877329982e1ef61"> 28</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WII_FLAG_NUNCHUCK_CONNECTED 0x02</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac551aee34d131e9407d9e0ede81e9cbe"> 30</a></span>&#160;<span class="preprocessor">#define wii_check_flag(flag) (wii_event_flag &amp; (flag))</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_wii_8h.html#ae72da8cfcaaad9b910ff14e08b72f60d"> 31</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define wii_set_flag(flag) (wii_event_flag |= (flag))</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_wii_8h.html#ac88349598e4482a310450e34af9b7ce3"> 32</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define wii_clear_flag(flag) (wii_event_flag &amp;= ~(flag))</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4"> 35</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a> {</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"> 37</a></span>&#160; <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a> = 0,</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"> 39</a></span>&#160; <a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b">HatY</a> = 1,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_w_i_i.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_i_i.html">WII</a> : <span class="keyword">public</span> <a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_w_i_i.html#a6597cb0e240a8ccb4ebdb236daef712e">WII</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p, <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">pair</a> = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">ACLData</a>(uint8_t* <a class="code" href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">ACLData</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72">Run</a>();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">Reset</a>();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">disconnect</a>();</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a7b183fe1809c1c595438e930b8f3f4de">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#ac94e8b9ce6d3f914f0e3ee4fba82efa3">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608"> 89</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">pair</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(pBtd)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; pBtd-&gt;<a class="code" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">pairWithWiimote</a>();</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; };</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a8e34abf62a9631ca3efba0150ca91b93">getAnalogHat</a>(<a class="code" href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a> a);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a8e34abf62a9631ca3efba0150ca91b93">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a748172bd57804856594ea8e21601319e"> 110</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a748172bd57804856594ea8e21601319e">getPitch</a>() {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</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="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> compPitch;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">getWiimotePitch</a>();</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03"> 120</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03">getRoll</a>() {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</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="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> compRoll;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">getWiimoteRoll</a>();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11"> 132</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11">getYaw</a>() {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">gyroYaw</a>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a6e97bfcfb134b63d7190ba1bc326e1d3">setAllOff</a>();</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a2c5c32841b020b248f757cb793acb936">setRumbleOff</a>();</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">setRumbleOn</a>();</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a841396b533cccccb05db37d35f6fef9c">setRumbleToggle</a>();</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">setLedRaw</a>(uint8_t value);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4"> 152</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">setLedOff</a>() {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">setLedRaw</a>(0);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">setLedOff</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a38507c76e5d7375a7971bc3a17b87338">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a8e81eb7d2d78680df0dee1869695ff05">setLedToggle</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> a);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a5d3b4a33ebc2ca9ebb154e10a05dbdd4">setLedStatus</a>();</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t <a class="code" href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">getBatteryLevel</a>();</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac"> 189</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac">getWiiState</a>() {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> wiiState;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; };</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387"> 197</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa"> 199</a></span>&#160; };</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">wiimoteConnected</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8"> 206</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">nunchuckConnected</a>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c"> 208</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">motionPlusConnected</a>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16"> 210</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">wiiUProControllerConnected</a>;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">/* IMU Data, might be usefull if you need to do something more advanced than just calculating the angle */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4"> 218</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">getWiimotePitch</a>() {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">accYwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>) + PI) * RAD_TO_DEG;</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;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60"> 222</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">getWiimoteRoll</a>() {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">accXwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; };</div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f"> 230</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f">getNunchuckPitch</a>() {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">accYnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>) + PI) * RAD_TO_DEG;</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;</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98"> 234</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98">getNunchuckRoll</a>() {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> (atan2(<a class="code" href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">accXnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>) + PI) * RAD_TO_DEG;</div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8"> 236</a></span>&#160; };</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; int16_t <a class="code" href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">accXwiimote</a>, <a class="code" href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">accYwiimote</a>, <a class="code" href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">accZwiimote</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6"> 242</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">accXnunchuck</a>, <a class="code" href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">accYnunchuck</a>, <a class="code" href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">accZnunchuck</a>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">/* Variables for the gyro inside the Motion Plus */</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4"> 247</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4">gyroPitch</a>;</div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8"> 249</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8">gyroRoll</a>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62"> 251</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">gyroYaw</a>;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded"> 255</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded">pitchGyroSpeed</a>;</div>
<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84"> 256</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84">rollGyroSpeed</a>;</div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6"> 257</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6">yawGyroSpeed</a>;</div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a"> 262</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a">pitchGyroScale</a>;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331"> 263</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331">rollGyroScale</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73"> 264</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73">yawGyroScale</a>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea"> 269</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea">gyroYawRaw</a>;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8"> 270</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8">gyroRollRaw</a>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544"> 271</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">gyroPitchRaw</a>;</div>
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2"> 276</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">gyroYawZero</a>;</div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9"> 277</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">gyroRollZero</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3"> 278</a></span>&#160; int16_t <a class="code" href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">gyroPitchZero</a>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">IRinitialize</a>();</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d"> 292</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d">getIRx1</a>() {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> IR_object_x1;</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="l00300"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9"> 300</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9">getIRy1</a>() {</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> IR_object_y1;</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;</div>
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421"> 308</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421">getIRs1</a>() {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> IR_object_s1;</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="l00316"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084"> 316</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084">getIRx2</a>() {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> IR_object_x2;</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"> 319</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d"> 324</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d">getIRy2</a>() {</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> IR_object_y2;</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="l00332"></a><span class="lineno"><a class="line" href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46"> 332</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46">getIRs2</a>() {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> IR_object_s2;</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="l00340"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e"> 340</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e">getIRx3</a>() {</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> IR_object_x3;</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="l00348"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d"> 348</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d">getIRy3</a>() {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">return</span> IR_object_y3;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; };</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e"> 356</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e">getIRs3</a>() {</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> IR_object_s3;</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;</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66"> 364</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66">getIRx4</a>() {</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> IR_object_x4;</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="l00372"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a"> 372</a></span>&#160; uint16_t <a class="code" href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a">getIRy4</a>() {</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> IR_object_y4;</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="l00380"></a><span class="lineno"><a class="line" href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735"> 380</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735">getIRs4</a>() {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> IR_object_s4;</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="l00389"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f"> 389</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>() {</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> (wiiState &amp; 0x08);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; };</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</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="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</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="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; uint16_t hci_handle;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735"> 416</a></span>&#160; uint8_t <a class="code" href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735">getIRs4</a>() {</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> IR_object_s4;</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="l00425"></a><span class="lineno"><a class="line" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f"> 425</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">isIRCameraEnabled</a>() {</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span>(wiiState &amp; 0x08);</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; };</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *pBtd; <span class="comment">// Pointer to BTD instance</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordtype">void</span> onInit();</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">void</span> L2CAP_task(); <span class="comment">// L2CAP state machine</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">/* Variables filled from HCI event management */</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; uint16_t hci_handle;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">bool</span> activeConnection; <span class="comment">// Used to indicate if it&#39;s already has established a connection</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; uint16_t l2cap_event_flag; <span class="comment">// l2cap flags of received Bluetooth events</span></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; uint32_t ButtonState;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint16_t hatValues[4];</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; uint8_t HIDBuffer[3]; <span class="comment">// Used to store HID commands</span></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"> 459</span>&#160; uint16_t stateCounter;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">bool</span> unknownExtensionConnected;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordtype">bool</span> extensionConnected;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordtype">bool</span> checkExtension; <span class="comment">// Set to false when getBatteryLevel() is called otherwise if should be true</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordtype">bool</span> motionPlusInside; <span class="comment">// True if it&#39;s a new Wiimote with the Motion Plus extension build into it</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">/* Variables used by high level L2CAP task */</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; uint8_t l2cap_state;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; uint32_t l2cap_event_flag; <span class="comment">// L2CAP flags of received Bluetooth events</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; uint8_t wii_event_flag; <span class="comment">// Used for Wii flags</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint32_t ButtonState;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; uint32_t OldButtonState;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint32_t ButtonClickState;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint16_t hatValues[4];</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; uint8_t HIDBuffer[3]; <span class="comment">// Used to store HID commands</span></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"> 424</span>&#160; uint16_t stateCounter;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">bool</span> unknownExtensionConnected;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">bool</span> extensionConnected;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordtype">bool</span> checkExtension; <span class="comment">// Set to false when getBatteryLevel() is called otherwise if should be true</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordtype">bool</span> motionPlusInside; <span class="comment">// True if it&#39;s a new Wiimote with the Motion Plus extension build into it</span></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">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0060</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0061</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</span></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; <span class="comment">/* HID Commands */</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordtype">void</span> setReportMode(<span class="keywordtype">bool</span> continuous, uint8_t mode);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordtype">void</span> writeData(uint32_t offset, uint8_t size, uint8_t* data);</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">void</span> initExtension1();</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordtype">void</span> initExtension2();</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> statusRequest(); <span class="comment">// Used to update the Wiimote state and battery level</span></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"> 447</span>&#160; <span class="keywordtype">void</span> readData(uint32_t offset, uint16_t size, <span class="keywordtype">bool</span> EEPROM);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordtype">void</span> readExtensionType();</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordtype">void</span> readCalData();</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"> 451</span>&#160; <span class="keywordtype">void</span> checkMotionPresent(); <span class="comment">// Used to see if a Motion Plus is connected to the Wiimote</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">void</span> initMotionPlus();</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">void</span> activateMotionPlus();</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordtype">double</span> compPitch; <span class="comment">// Fusioned angle using a complimentary filter if the Motion Plus is connected</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordtype">double</span> compRoll; <span class="comment">// Fusioned angle using a complimentary filter if the Motion Plus is connected</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; <span class="keywordtype">bool</span> activateNunchuck;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordtype">bool</span> motionValuesReset; <span class="comment">// This bool is true when the gyro values has been reset</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint8_t wiiState; <span class="comment">// Stores the value in l2capinbuf[12] - (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="l00463"></a><span class="lineno"> 463</span>&#160; uint8_t batteryLevel;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">/* L2CAP Channels */</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint8_t control_scid[2]; <span class="comment">// L2CAP source CID for HID_Control</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; uint8_t control_dcid[2]; <span class="comment">// 0x0060</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; uint8_t interrupt_scid[2]; <span class="comment">// L2CAP source CID for HID_Interrupt</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; uint8_t interrupt_dcid[2]; <span class="comment">// 0x0061</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; uint8_t identifier; <span class="comment">// Identifier for connection</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">/* HID Commands */</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordtype">void</span> HID_Command(uint8_t* data, uint8_t nbytes);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">void</span> setReportMode(<span class="keywordtype">bool</span> continuous, uint8_t mode);</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> writeData(uint32_t offset, uint8_t size, uint8_t* data);</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">void</span> initExtension1();</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordtype">void</span> initExtension2();</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">void</span> statusRequest(); <span class="comment">// Used to update the Wiimote state and battery level</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="keywordtype">void</span> readData(uint32_t offset, uint16_t size, <span class="keywordtype">bool</span> EEPROM);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">void</span> readExtensionType();</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">void</span> readCalData();</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> checkMotionPresent(); <span class="comment">// Used to see if a Motion Plus is connected to the Wiimote</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">void</span> initMotionPlus();</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">void</span> activateMotionPlus();</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; <span class="keywordtype">double</span> compPitch; <span class="comment">// Fusioned angle using a complimentary filter if the Motion Plus is connected</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordtype">double</span> compRoll; <span class="comment">// Fusioned angle using a complimentary filter if the Motion Plus is connected</span></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="keywordtype">bool</span> activateNunchuck;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordtype">bool</span> motionValuesReset; <span class="comment">// This bool is true when the gyro values has been reset</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timer;</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; uint8_t wiiState; <span class="comment">// Stores the value in l2capinbuf[12] - (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="l00498"></a><span class="lineno"> 498</span>&#160; uint8_t batteryLevel;</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;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"></span> <span class="comment">/* Private function and variables for the readings from the IR Camera */</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordtype">void</span> enableIRCamera1(); <span class="comment">// Sets bit 2 of output report 13</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordtype">void</span> enableIRCamera2(); <span class="comment">// Sets bit 2 of output report 1A</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordtype">void</span> writeSensitivityBlock1();</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordtype">void</span> writeSensitivityBlock2();</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordtype">void</span> write0x08Value();</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordtype">void</span> setWiiModeNumber(uint8_t mode_number);</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; uint16_t IR_object_x1; <span class="comment">// IR x position 10 bits</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; uint16_t IR_object_y1; <span class="comment">// IR y position 10 bits</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; uint8_t IR_object_s1; <span class="comment">// IR size value</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; uint16_t IR_object_x2;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint16_t IR_object_y2;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint8_t IR_object_s2;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; uint16_t IR_object_x3; <span class="comment">// IR x position 10 bits</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; uint16_t IR_object_y3; <span class="comment">// IR y position 10 bits</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; uint8_t IR_object_s3; <span class="comment">// IR size value</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; uint16_t IR_object_x4;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; uint16_t IR_object_y4;</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; uint8_t IR_object_s4;</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"></span>};</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_w_i_i_html_ae25a8ea1b0713801e0209e795b4596fa"><div class="ttname"><a href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">WII::wiimoteConnected</a></div><div class="ttdeci">bool wiimoteConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00239">Wii.h:239</a></div></div>
<div class="ttc" id="class_w_i_i_html_a749ea9dd39ba9a5320c5b24ce93bc544"><div class="ttname"><a href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">WII::gyroPitchRaw</a></div><div class="ttdeci">int16_t gyroPitchRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00307">Wii.h:307</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6c0971ae4c9ab752888a5871020c8331"><div class="ttname"><a href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331">WII::rollGyroScale</a></div><div class="ttdeci">uint16_t rollGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00299">Wii.h:299</a></div></div>
<div class="ttc" id="class_w_i_i_html_a052ed48b0eea76fbd3858024ce962c6f"><div class="ttname"><a href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f">WII::getNunchuckPitch</a></div><div class="ttdeci">double getNunchuckPitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00267">Wii.h:267</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae7e07f929fba8f0ff061a1405baa2b58"><div class="ttname"><a href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">WII::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00876">Wii.cpp:876</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0694969a30092b9b1dcb26120c7cff73"><div class="ttname"><a href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73">WII::yawGyroScale</a></div><div class="ttdeci">uint16_t yawGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00300">Wii.h:300</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00158">BTD.h:158</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2d8fd822e6e9c271d59c71dc7b757421"><div class="ttname"><a href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421">WII::getIRs1</a></div><div class="ttdeci">uint8_t getIRs1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00344">Wii.h:344</a></div></div>
<div class="ttc" id="_wii_8h_html_a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d"><div class="ttname"><a href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00082">Wii.h:82</a></div></div>
<div class="ttc" id="class_w_i_i_html_a05841e1975803d561f80aeb3dd0a4a1e"><div class="ttname"><a href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e">WII::getIRs3</a></div><div class="ttdeci">uint8_t getIRs3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00392">Wii.h:392</a></div></div>
<div class="ttc" id="class_w_i_i_html_a73e82829c5d13a4117ecd6d23b6c3d98"><div class="ttname"><a href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98">WII::getNunchuckRoll</a></div><div class="ttdeci">double getNunchuckRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00270">Wii.h:270</a></div></div>
<div class="ttc" id="class_w_i_i_html_a81e1eb4d9ef9999a84e71d764d54dff7"><div class="ttname"><a href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">WII::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00134">Wii.cpp:134</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2a0e4745bff7cfec644bcebe984c2bc8"><div class="ttname"><a href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8">WII::gyroRoll</a></div><div class="ttdeci">double gyroRoll</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00285">Wii.h:285</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7a92d63c7cf9d3d5b38bdb9ad4d7ef66"><div class="ttname"><a href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66">WII::getIRx4</a></div><div class="ttdeci">uint16_t getIRx4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00400">Wii.h:400</a></div></div>
<div class="ttc" id="class_w_i_i_html_af7755e2b2a161a550c99de2ca1018ce3"><div class="ttname"><a href="class_w_i_i.html#af7755e2b2a161a550c99de2ca1018ce3">WII::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00893">Wii.cpp:893</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0d9c869bd3677c4488a586c38558a137"><div class="ttname"><a href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">WII::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00864">Wii.cpp:864</a></div></div>
<div class="ttc" id="class_w_i_i_html_a769ee2f9a0088da097438bc3cc677f7c"><div class="ttname"><a href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">WII::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00103">Wii.cpp:103</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6ac037d884f97319892e8671ef070c03"><div class="ttname"><a href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03">WII::getRoll</a></div><div class="ttdeci">double getRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00162">Wii.h:162</a></div></div>
<div class="ttc" id="class_w_i_i_html_a42af5743d2e3c2dbc01ea0b5531cc7c6"><div class="ttname"><a href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">WII::accZnunchuck</a></div><div class="ttdeci">int16_t accZnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00278">Wii.h:278</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae946f7d6e9ce89fb083f5f138c0736c2"><div class="ttname"><a href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">WII::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00912">Wii.cpp:912</a></div></div>
<div class="ttc" id="class_w_i_i_html_aabe4780f258dada1c0564a4ac7607370"><div class="ttname"><a href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">WII::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00117">Wii.cpp:117</a></div></div>
<div class="ttc" id="class_w_i_i_html_a748172bd57804856594ea8e21601319e"><div class="ttname"><a href="class_w_i_i.html#a748172bd57804856594ea8e21601319e">WII::getPitch</a></div><div class="ttdeci">double getPitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00152">Wii.h:152</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3a13b5931284d5bcd6647f681cda95b4"><div class="ttname"><a href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">WII::accXnunchuck</a></div><div class="ttdeci">int16_t accXnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00278">Wii.h:278</a></div></div>
<div class="ttc" id="class_w_i_i_html_adbf9ccb1725dc432e07ca19468713116"><div class="ttname"><a href="class_w_i_i.html#adbf9ccb1725dc432e07ca19468713116">WII::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01041">Wii.cpp:1041</a></div></div>
<div class="ttc" id="class_w_i_i_html_a8e9ac1d379db5c07c478401046a1c0ac"><div class="ttname"><a href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac">WII::getWiiState</a></div><div class="ttdeci">uint8_t getWiiState()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00229">Wii.h:229</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae148de3c99b3fb4ef65ea62d2848df7d"><div class="ttname"><a href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d">WII::getIRy2</a></div><div class="ttdeci">uint16_t getIRy2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00360">Wii.h:360</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0784c779ebeae2d459996c35a54ee3b8"><div class="ttname"><a href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8">WII::gyroRollRaw</a></div><div class="ttdeci">int16_t gyroRollRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00306">Wii.h:306</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3505abbc01c71d134ce301dfb7c0c5b5"><div class="ttname"><a href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">WII::IRinitialize</a></div><div class="ttdeci">void IRinitialize()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01089">Wii.cpp:1089</a></div></div>
<div class="ttc" id="_wii_8h_html_a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b"><div class="ttname"><a href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7ae2ac743b5ba1752933e09f1dac48d97b">HatY</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00084">Wii.h:84</a></div></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#ifdef WIICAMERA</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"></span> <span class="comment">/* Private function and variables for the readings from the IR Camera */</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">void</span> enableIRCamera1(); <span class="comment">// Sets bit 2 of output report 13</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordtype">void</span> enableIRCamera2(); <span class="comment">// Sets bit 2 of output report 1A</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">void</span> writeSensitivityBlock1();</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">void</span> writeSensitivityBlock2();</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">void</span> write0x08Value();</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordtype">void</span> setWiiModeNumber(uint8_t mode_number);</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"> 474</span>&#160; uint16_t IR_object_x1; <span class="comment">// IR x position 10 bits</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; uint16_t IR_object_y1; <span class="comment">// IR y position 10 bits</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; uint8_t IR_object_s1; <span class="comment">// IR size value</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint16_t IR_object_x2;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; uint16_t IR_object_y2;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; uint8_t IR_object_s2;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; uint16_t IR_object_x3; <span class="comment">// IR x position 10 bits</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; uint16_t IR_object_y3; <span class="comment">// IR y position 10 bits</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint8_t IR_object_s3; <span class="comment">// IR size value</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; uint16_t IR_object_x4;</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; uint16_t IR_object_y4;</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; uint8_t IR_object_s4;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"></span>};</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_w_i_i_html_ae25a8ea1b0713801e0209e795b4596fa"><div class="ttname"><a href="class_w_i_i.html#ae25a8ea1b0713801e0209e795b4596fa">WII::wiimoteConnected</a></div><div class="ttdeci">bool wiimoteConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00199">Wii.h:199</a></div></div>
<div class="ttc" id="class_w_i_i_html_a749ea9dd39ba9a5320c5b24ce93bc544"><div class="ttname"><a href="class_w_i_i.html#a749ea9dd39ba9a5320c5b24ce93bc544">WII::gyroPitchRaw</a></div><div class="ttdeci">int16_t gyroPitchRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00271">Wii.h:271</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6c0971ae4c9ab752888a5871020c8331"><div class="ttname"><a href="class_w_i_i.html#a6c0971ae4c9ab752888a5871020c8331">WII::rollGyroScale</a></div><div class="ttdeci">uint16_t rollGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00263">Wii.h:263</a></div></div>
<div class="ttc" id="class_w_i_i_html_a052ed48b0eea76fbd3858024ce962c6f"><div class="ttname"><a href="class_w_i_i.html#a052ed48b0eea76fbd3858024ce962c6f">WII::getNunchuckPitch</a></div><div class="ttdeci">double getNunchuckPitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00230">Wii.h:230</a></div></div>
<div class="ttc" id="class_w_i_i_html_a8e81eb7d2d78680df0dee1869695ff05"><div class="ttname"><a href="class_w_i_i.html#a8e81eb7d2d78680df0dee1869695ff05">WII::setLedToggle</a></div><div class="ttdeci">void setLedToggle(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00900">Wii.cpp:900</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae7e07f929fba8f0ff061a1405baa2b58"><div class="ttname"><a href="class_w_i_i.html#ae7e07f929fba8f0ff061a1405baa2b58">WII::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00878">Wii.cpp:878</a></div></div>
<div class="ttc" id="class_w_i_i_html_a8e34abf62a9631ca3efba0150ca91b93"><div class="ttname"><a href="class_w_i_i.html#a8e34abf62a9631ca3efba0150ca91b93">WII::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(HatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01059">Wii.cpp:1059</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0694969a30092b9b1dcb26120c7cff73"><div class="ttname"><a href="class_w_i_i.html#a0694969a30092b9b1dcb26120c7cff73">WII::yawGyroScale</a></div><div class="ttdeci">uint16_t yawGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00264">Wii.h:264</a></div></div>
<div class="ttc" id="_wii_8h_html_ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b"><div class="ttname"><a href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4ae2ac743b5ba1752933e09f1dac48d97b">HatY</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00039">Wii.h:39</a></div></div>
<div class="ttc" id="class_b_t_d_html"><div class="ttname"><a href="class_b_t_d.html">BTD</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00230">BTD.h:230</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2d8fd822e6e9c271d59c71dc7b757421"><div class="ttname"><a href="class_w_i_i.html#a2d8fd822e6e9c271d59c71dc7b757421">WII::getIRs1</a></div><div class="ttdeci">uint8_t getIRs1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00308">Wii.h:308</a></div></div>
<div class="ttc" id="class_w_i_i_html_a05841e1975803d561f80aeb3dd0a4a1e"><div class="ttname"><a href="class_w_i_i.html#a05841e1975803d561f80aeb3dd0a4a1e">WII::getIRs3</a></div><div class="ttdeci">uint8_t getIRs3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00356">Wii.h:356</a></div></div>
<div class="ttc" id="class_w_i_i_html_a73e82829c5d13a4117ecd6d23b6c3d98"><div class="ttname"><a href="class_w_i_i.html#a73e82829c5d13a4117ecd6d23b6c3d98">WII::getNunchuckRoll</a></div><div class="ttdeci">double getNunchuckRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00234">Wii.h:234</a></div></div>
<div class="ttc" id="class_w_i_i_html_a81e1eb4d9ef9999a84e71d764d54dff7"><div class="ttname"><a href="class_w_i_i.html#a81e1eb4d9ef9999a84e71d764d54dff7">WII::ACLData</a></div><div class="ttdeci">virtual void ACLData(uint8_t *ACLData)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00135">Wii.cpp:135</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2a0e4745bff7cfec644bcebe984c2bc8"><div class="ttname"><a href="class_w_i_i.html#a2a0e4745bff7cfec644bcebe984c2bc8">WII::gyroRoll</a></div><div class="ttdeci">double gyroRoll</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00249">Wii.h:249</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7a92d63c7cf9d3d5b38bdb9ad4d7ef66"><div class="ttname"><a href="class_w_i_i.html#a7a92d63c7cf9d3d5b38bdb9ad4d7ef66">WII::getIRx4</a></div><div class="ttdeci">uint16_t getIRx4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00364">Wii.h:364</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0d9c869bd3677c4488a586c38558a137"><div class="ttname"><a href="class_w_i_i.html#a0d9c869bd3677c4488a586c38558a137">WII::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00866">Wii.cpp:866</a></div></div>
<div class="ttc" id="class_w_i_i_html_a769ee2f9a0088da097438bc3cc677f7c"><div class="ttname"><a href="class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c">WII::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00104">Wii.cpp:104</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6ac037d884f97319892e8671ef070c03"><div class="ttname"><a href="class_w_i_i.html#a6ac037d884f97319892e8671ef070c03">WII::getRoll</a></div><div class="ttdeci">double getRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00120">Wii.h:120</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_w_i_i_html_a42af5743d2e3c2dbc01ea0b5531cc7c6"><div class="ttname"><a href="class_w_i_i.html#a42af5743d2e3c2dbc01ea0b5531cc7c6">WII::accZnunchuck</a></div><div class="ttdeci">int16_t accZnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00242">Wii.h:242</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae946f7d6e9ce89fb083f5f138c0736c2"><div class="ttname"><a href="class_w_i_i.html#ae946f7d6e9ce89fb083f5f138c0736c2">WII::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00919">Wii.cpp:919</a></div></div>
<div class="ttc" id="class_w_i_i_html_aabe4780f258dada1c0564a4ac7607370"><div class="ttname"><a href="class_w_i_i.html#aabe4780f258dada1c0564a4ac7607370">WII::disconnect</a></div><div class="ttdeci">virtual void disconnect()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00118">Wii.cpp:118</a></div></div>
<div class="ttc" id="class_w_i_i_html_a748172bd57804856594ea8e21601319e"><div class="ttname"><a href="class_w_i_i.html#a748172bd57804856594ea8e21601319e">WII::getPitch</a></div><div class="ttdeci">double getPitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00110">Wii.h:110</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3a13b5931284d5bcd6647f681cda95b4"><div class="ttname"><a href="class_w_i_i.html#a3a13b5931284d5bcd6647f681cda95b4">WII::accXnunchuck</a></div><div class="ttdeci">int16_t accXnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00242">Wii.h:242</a></div></div>
<div class="ttc" id="class_w_i_i_html_a8e9ac1d379db5c07c478401046a1c0ac"><div class="ttname"><a href="class_w_i_i.html#a8e9ac1d379db5c07c478401046a1c0ac">WII::getWiiState</a></div><div class="ttdeci">uint8_t getWiiState()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00189">Wii.h:189</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae148de3c99b3fb4ef65ea62d2848df7d"><div class="ttname"><a href="class_w_i_i.html#ae148de3c99b3fb4ef65ea62d2848df7d">WII::getIRy2</a></div><div class="ttdeci">uint16_t getIRy2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00324">Wii.h:324</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0784c779ebeae2d459996c35a54ee3b8"><div class="ttname"><a href="class_w_i_i.html#a0784c779ebeae2d459996c35a54ee3b8">WII::gyroRollRaw</a></div><div class="ttdeci">int16_t gyroRollRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00270">Wii.h:270</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3505abbc01c71d134ce301dfb7c0c5b5"><div class="ttname"><a href="class_w_i_i.html#a3505abbc01c71d134ce301dfb7c0c5b5">WII::IRinitialize</a></div><div class="ttdeci">void IRinitialize()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01096">Wii.cpp:1096</a></div></div>
<div class="ttc" id="_wii_8h_html_ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d"><div class="ttname"><a href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4aed1a7a35bf1b9c1003fbe3dd4a61a06d">HatX</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00037">Wii.h:37</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="class_w_i_i_html_a551e48a50c7b60722e807e68ae25f084"><div class="ttname"><a href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084">WII::getIRx2</a></div><div class="ttdeci">uint16_t getIRx2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00352">Wii.h:352</a></div></div>
<div class="ttc" id="class_w_i_i_html_af380eb3bf65ce33a60aaf35f74a44f6d"><div class="ttname"><a href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d">WII::getIRx1</a></div><div class="ttdeci">uint16_t getIRx1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00328">Wii.h:328</a></div></div>
<div class="ttc" id="class_w_i_i_html_a841396b533cccccb05db37d35f6fef9c"><div class="ttname"><a href="class_w_i_i.html#a841396b533cccccb05db37d35f6fef9c">WII::setRumbleToggle</a></div><div class="ttdeci">void setRumbleToggle()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00870">Wii.cpp:870</a></div></div>
<div class="ttc" id="class_w_i_i_html_abbc31ecd4495d70258cfa095e34cb3c3"><div class="ttname"><a href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">WII::gyroPitchZero</a></div><div class="ttdeci">int16_t gyroPitchZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00314">Wii.h:314</a></div></div>
<div class="ttc" id="class_w_i_i_html_aea6ce6f3222df3e547e9957673c7a07a"><div class="ttname"><a href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a">WII::pitchGyroScale</a></div><div class="ttdeci">uint16_t pitchGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00298">Wii.h:298</a></div></div>
<div class="ttc" id="class_w_i_i_html_a9a58b857c84fa82152be7983efe70f60"><div class="ttname"><a href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">WII::getWiimoteRoll</a></div><div class="ttdeci">double getWiimoteRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00260">Wii.h:260</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6597cb0e240a8ccb4ebdb236daef712e"><div class="ttname"><a href="class_w_i_i.html#a6597cb0e240a8ccb4ebdb236daef712e">WII::WII</a></div><div class="ttdeci">WII(BTD *p, bool pair=false)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00084">Wii.cpp:84</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3fb552c6ad486e23434dcb347a2a4b84"><div class="ttname"><a href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84">WII::rollGyroSpeed</a></div><div class="ttdeci">double rollGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00292">Wii.h:292</a></div></div>
<div class="ttc" id="class_w_i_i_html_aef56b9f37422b0a41642b39d10db0735"><div class="ttname"><a href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735">WII::getIRs4</a></div><div class="ttdeci">uint8_t getIRs4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00416">Wii.h:416</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5e778f879c6d0a73a94bd61e42d05b8d"><div class="ttname"><a href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d">WII::getIRy3</a></div><div class="ttdeci">uint16_t getIRy3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00384">Wii.h:384</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00139">BTD.h:139</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5d3b4a33ebc2ca9ebb154e10a05dbdd4"><div class="ttname"><a href="class_w_i_i.html#a5d3b4a33ebc2ca9ebb154e10a05dbdd4">WII::setLedStatus</a></div><div class="ttdeci">void setLedStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00899">Wii.cpp:899</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3a7b9dd571c5a8597bfb194000bd517c"><div class="ttname"><a href="class_w_i_i.html#a3a7b9dd571c5a8597bfb194000bd517c">WII::setLedOn</a></div><div class="ttdeci">void setLedOn(LED a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00887">Wii.cpp:887</a></div></div>
<div class="ttc" id="class_w_i_i_html_aa2c14275d9e482e6add06cb34ccf1197"><div class="ttname"><a href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">WII::accYwiimote</a></div><div class="ttdeci">int16_t accYwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00272">Wii.h:272</a></div></div>
<div class="ttc" id="class_w_i_i_html_a461f5b7a5f2bc874e107fc776c284b16"><div class="ttname"><a href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">WII::wiiUProControllerConnected</a></div><div class="ttdeci">bool wiiUProControllerConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00250">Wii.h:250</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2c5c32841b020b248f757cb793acb936"><div class="ttname"><a href="class_w_i_i.html#a2c5c32841b020b248f757cb793acb936">WII::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00858">Wii.cpp:858</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6e97bfcfb134b63d7190ba1bc326e1d3"><div class="ttname"><a href="class_w_i_i.html#a6e97bfcfb134b63d7190ba1bc326e1d3">WII::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00852">Wii.cpp:852</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae3eb7942181a9c9e681e18bd5c8eaef4"><div class="ttname"><a href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">WII::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00193">Wii.h:193</a></div></div>
<div class="ttc" id="class_w_i_i_html_a341b9a50bfdb18af9c66a3079e5804d9"><div class="ttname"><a href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9">WII::getIRy1</a></div><div class="ttdeci">uint16_t getIRy1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00336">Wii.h:336</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5648a03968d0c2331867f9b7bcaa3e3e"><div class="ttname"><a href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e">WII::getIRx3</a></div><div class="ttdeci">uint16_t getIRx3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00376">Wii.h:376</a></div></div>
<div class="ttc" id="class_w_i_i_html_a988db5b35cfc3c543f93f49587a50e62"><div class="ttname"><a href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">WII::gyroYaw</a></div><div class="ttdeci">double gyroYaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00287">Wii.h:287</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7cb4cec343c65fd350e6b05043d7f1a8"><div class="ttname"><a href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">WII::nunchuckConnected</a></div><div class="ttdeci">bool nunchuckConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00246">Wii.h:246</a></div></div>
<div class="ttc" id="class_w_i_i_html_a759837b933f63ce7c3235639be29250a"><div class="ttname"><a href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a">WII::getIRy4</a></div><div class="ttdeci">uint16_t getIRy4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00408">Wii.h:408</a></div></div>
<div class="ttc" id="class_w_i_i_html_ab813b65548e827f41a5192fcc34056ea"><div class="ttname"><a href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea">WII::gyroYawRaw</a></div><div class="ttdeci">int16_t gyroYawRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00305">Wii.h:305</a></div></div>
<div class="ttc" id="class_w_i_i_html_acf4b3ef0a4fa0cf71133a22213361288"><div class="ttname"><a href="class_w_i_i.html#acf4b3ef0a4fa0cf71133a22213361288">WII::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01034">Wii.cpp:1034</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0a444d7e348026e062751cf723877e8f"><div class="ttname"><a href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">WII::isIRCameraEnabled</a></div><div class="ttdeci">bool isIRCameraEnabled()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00425">Wii.h:425</a></div></div>
<div class="ttc" id="_wii_8h_html_a3edd2b2fd262b698309012868fad0be7"><div class="ttname"><a href="_wii_8h.html#a3edd2b2fd262b698309012868fad0be7">Hat</a></div><div class="ttdeci">Hat</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00080">Wii.h:80</a></div></div>
<div class="ttc" id="class_w_i_i_html_af384f13c59fee08a4be0c541e6a9b387"><div class="ttname"><a href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387">WII::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00237">Wii.h:237</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae92e129c54c8131f4a2c55582dfd2f11"><div class="ttname"><a href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11">WII::getYaw</a></div><div class="ttdeci">double getYaw()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00174">Wii.h:174</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2fb34f50b5374c9442af263f61595af4"><div class="ttname"><a href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">WII::getWiimotePitch</a></div><div class="ttdeci">double getWiimotePitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00257">Wii.h:257</a></div></div>
<div class="ttc" id="class_w_i_i_html_a39c3101b26cc549d5258018b3d05c608"><div class="ttname"><a href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">WII::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00131">Wii.h:131</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_w_i_i_html_ad5df436cc5d073f26bf3ea5c60d788d6"><div class="ttname"><a href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6">WII::yawGyroSpeed</a></div><div class="ttdeci">double yawGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00293">Wii.h:293</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae657585a560e9d214e6c0219f8b47aeb"><div class="ttname"><a href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">WII::accYnunchuck</a></div><div class="ttdeci">int16_t accYnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00278">Wii.h:278</a></div></div>
<div class="ttc" id="class_w_i_i_html_ad4f0d2456c56414f9b8013b85a1ee7d2"><div class="ttname"><a href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">WII::gyroYawZero</a></div><div class="ttdeci">int16_t gyroYawZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00312">Wii.h:312</a></div></div>
<div class="ttc" id="class_w_i_i_html_acfb290a86aa9a65dd4ae84d02e3c6ded"><div class="ttname"><a href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded">WII::pitchGyroSpeed</a></div><div class="ttdeci">double pitchGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00291">Wii.h:291</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00425">BTD.h:425</a></div></div>
<div class="ttc" id="class_w_i_i_html_accf6ca623ffe93b3c78aaf60c7fd1f46"><div class="ttname"><a href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46">WII::getIRs2</a></div><div class="ttdeci">uint8_t getIRs2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00368">Wii.h:368</a></div></div>
<div class="ttc" id="class_w_i_i_html_af61f57d34b81f2a878f0126a074e3af4"><div class="ttname"><a href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4">WII::gyroPitch</a></div><div class="ttdeci">double gyroPitch</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00283">Wii.h:283</a></div></div>
<div class="ttc" id="class_w_i_i_html"><div class="ttname"><a href="class_w_i_i.html">WII</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00092">Wii.h:92</a></div></div>
<div class="ttc" id="class_w_i_i_html_a551e48a50c7b60722e807e68ae25f084"><div class="ttname"><a href="class_w_i_i.html#a551e48a50c7b60722e807e68ae25f084">WII::getIRx2</a></div><div class="ttdeci">uint16_t getIRx2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00316">Wii.h:316</a></div></div>
<div class="ttc" id="class_w_i_i_html_af380eb3bf65ce33a60aaf35f74a44f6d"><div class="ttname"><a href="class_w_i_i.html#af380eb3bf65ce33a60aaf35f74a44f6d">WII::getIRx1</a></div><div class="ttdeci">uint16_t getIRx1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00292">Wii.h:292</a></div></div>
<div class="ttc" id="class_w_i_i_html_a841396b533cccccb05db37d35f6fef9c"><div class="ttname"><a href="class_w_i_i.html#a841396b533cccccb05db37d35f6fef9c">WII::setRumbleToggle</a></div><div class="ttdeci">void setRumbleToggle()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00872">Wii.cpp:872</a></div></div>
<div class="ttc" id="class_w_i_i_html_abbc31ecd4495d70258cfa095e34cb3c3"><div class="ttname"><a href="class_w_i_i.html#abbc31ecd4495d70258cfa095e34cb3c3">WII::gyroPitchZero</a></div><div class="ttdeci">int16_t gyroPitchZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00278">Wii.h:278</a></div></div>
<div class="ttc" id="class_w_i_i_html_aea6ce6f3222df3e547e9957673c7a07a"><div class="ttname"><a href="class_w_i_i.html#aea6ce6f3222df3e547e9957673c7a07a">WII::pitchGyroScale</a></div><div class="ttdeci">uint16_t pitchGyroScale</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00262">Wii.h:262</a></div></div>
<div class="ttc" id="class_w_i_i_html_a9a58b857c84fa82152be7983efe70f60"><div class="ttname"><a href="class_w_i_i.html#a9a58b857c84fa82152be7983efe70f60">WII::getWiimoteRoll</a></div><div class="ttdeci">double getWiimoteRoll()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00222">Wii.h:222</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6597cb0e240a8ccb4ebdb236daef712e"><div class="ttname"><a href="class_w_i_i.html#a6597cb0e240a8ccb4ebdb236daef712e">WII::WII</a></div><div class="ttdeci">WII(BTD *p, bool pair=false)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00085">Wii.cpp:85</a></div></div>
<div class="ttc" id="class_w_i_i_html_a3fb552c6ad486e23434dcb347a2a4b84"><div class="ttname"><a href="class_w_i_i.html#a3fb552c6ad486e23434dcb347a2a4b84">WII::rollGyroSpeed</a></div><div class="ttdeci">double rollGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00256">Wii.h:256</a></div></div>
<div class="ttc" id="class_w_i_i_html_aef56b9f37422b0a41642b39d10db0735"><div class="ttname"><a href="class_w_i_i.html#aef56b9f37422b0a41642b39d10db0735">WII::getIRs4</a></div><div class="ttdeci">uint8_t getIRs4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00380">Wii.h:380</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5e778f879c6d0a73a94bd61e42d05b8d"><div class="ttname"><a href="class_w_i_i.html#a5e778f879c6d0a73a94bd61e42d05b8d">WII::getIRy3</a></div><div class="ttdeci">uint16_t getIRy3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00348">Wii.h:348</a></div></div>
<div class="ttc" id="class_bluetooth_service_html"><div class="ttname"><a href="class_bluetooth_service.html">BluetoothService</a></div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00211">BTD.h:211</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5d3b4a33ebc2ca9ebb154e10a05dbdd4"><div class="ttname"><a href="class_w_i_i.html#a5d3b4a33ebc2ca9ebb154e10a05dbdd4">WII::setLedStatus</a></div><div class="ttdeci">void setLedStatus()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00906">Wii.cpp:906</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_w_i_i_html_ac94e8b9ce6d3f914f0e3ee4fba82efa3"><div class="ttname"><a href="class_w_i_i.html#ac94e8b9ce6d3f914f0e3ee4fba82efa3">WII::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01048">Wii.cpp:1048</a></div></div>
<div class="ttc" id="class_w_i_i_html_aa2c14275d9e482e6add06cb34ccf1197"><div class="ttname"><a href="class_w_i_i.html#aa2c14275d9e482e6add06cb34ccf1197">WII::accYwiimote</a></div><div class="ttdeci">int16_t accYwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00236">Wii.h:236</a></div></div>
<div class="ttc" id="class_w_i_i_html_a461f5b7a5f2bc874e107fc776c284b16"><div class="ttname"><a href="class_w_i_i.html#a461f5b7a5f2bc874e107fc776c284b16">WII::wiiUProControllerConnected</a></div><div class="ttdeci">bool wiiUProControllerConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00210">Wii.h:210</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2c5c32841b020b248f757cb793acb936"><div class="ttname"><a href="class_w_i_i.html#a2c5c32841b020b248f757cb793acb936">WII::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00860">Wii.cpp:860</a></div></div>
<div class="ttc" id="class_w_i_i_html_a6e97bfcfb134b63d7190ba1bc326e1d3"><div class="ttname"><a href="class_w_i_i.html#a6e97bfcfb134b63d7190ba1bc326e1d3">WII::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00854">Wii.cpp:854</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae3eb7942181a9c9e681e18bd5c8eaef4"><div class="ttname"><a href="class_w_i_i.html#ae3eb7942181a9c9e681e18bd5c8eaef4">WII::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00152">Wii.h:152</a></div></div>
<div class="ttc" id="class_w_i_i_html_a341b9a50bfdb18af9c66a3079e5804d9"><div class="ttname"><a href="class_w_i_i.html#a341b9a50bfdb18af9c66a3079e5804d9">WII::getIRy1</a></div><div class="ttdeci">uint16_t getIRy1()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00300">Wii.h:300</a></div></div>
<div class="ttc" id="class_w_i_i_html_a5648a03968d0c2331867f9b7bcaa3e3e"><div class="ttname"><a href="class_w_i_i.html#a5648a03968d0c2331867f9b7bcaa3e3e">WII::getIRx3</a></div><div class="ttdeci">uint16_t getIRx3()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00340">Wii.h:340</a></div></div>
<div class="ttc" id="class_w_i_i_html_a988db5b35cfc3c543f93f49587a50e62"><div class="ttname"><a href="class_w_i_i.html#a988db5b35cfc3c543f93f49587a50e62">WII::gyroYaw</a></div><div class="ttdeci">double gyroYaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00251">Wii.h:251</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7cb4cec343c65fd350e6b05043d7f1a8"><div class="ttname"><a href="class_w_i_i.html#a7cb4cec343c65fd350e6b05043d7f1a8">WII::nunchuckConnected</a></div><div class="ttdeci">bool nunchuckConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00206">Wii.h:206</a></div></div>
<div class="ttc" id="class_w_i_i_html_a759837b933f63ce7c3235639be29250a"><div class="ttname"><a href="class_w_i_i.html#a759837b933f63ce7c3235639be29250a">WII::getIRy4</a></div><div class="ttdeci">uint16_t getIRy4()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00372">Wii.h:372</a></div></div>
<div class="ttc" id="class_w_i_i_html_ab813b65548e827f41a5192fcc34056ea"><div class="ttname"><a href="class_w_i_i.html#ab813b65548e827f41a5192fcc34056ea">WII::gyroYawRaw</a></div><div class="ttdeci">int16_t gyroYawRaw</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00269">Wii.h:269</a></div></div>
<div class="ttc" id="class_w_i_i_html_a0a444d7e348026e062751cf723877e8f"><div class="ttname"><a href="class_w_i_i.html#a0a444d7e348026e062751cf723877e8f">WII::isIRCameraEnabled</a></div><div class="ttdeci">bool isIRCameraEnabled()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00389">Wii.h:389</a></div></div>
<div class="ttc" id="class_w_i_i_html_af384f13c59fee08a4be0c541e6a9b387"><div class="ttname"><a href="class_w_i_i.html#af384f13c59fee08a4be0c541e6a9b387">WII::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00197">Wii.h:197</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae92e129c54c8131f4a2c55582dfd2f11"><div class="ttname"><a href="class_w_i_i.html#ae92e129c54c8131f4a2c55582dfd2f11">WII::getYaw</a></div><div class="ttdeci">double getYaw()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00132">Wii.h:132</a></div></div>
<div class="ttc" id="class_w_i_i_html_a2fb34f50b5374c9442af263f61595af4"><div class="ttname"><a href="class_w_i_i.html#a2fb34f50b5374c9442af263f61595af4">WII::getWiimotePitch</a></div><div class="ttdeci">double getWiimotePitch()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00218">Wii.h:218</a></div></div>
<div class="ttc" id="class_w_i_i_html_a39c3101b26cc549d5258018b3d05c608"><div class="ttname"><a href="class_w_i_i.html#a39c3101b26cc549d5258018b3d05c608">WII::pair</a></div><div class="ttdeci">void pair(void)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00089">Wii.h:89</a></div></div>
<div class="ttc" id="class_w_i_i_html_a38507c76e5d7375a7971bc3a17b87338"><div class="ttname"><a href="class_w_i_i.html#a38507c76e5d7375a7971bc3a17b87338">WII::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00890">Wii.cpp:890</a></div></div>
<div class="ttc" id="class_w_i_i_html_ad5df436cc5d073f26bf3ea5c60d788d6"><div class="ttname"><a href="class_w_i_i.html#ad5df436cc5d073f26bf3ea5c60d788d6">WII::yawGyroSpeed</a></div><div class="ttdeci">double yawGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00257">Wii.h:257</a></div></div>
<div class="ttc" id="_wii_8h_html_ad79e49e27b025d6ac9d695c4816f84d4"><div class="ttname"><a href="_wii_8h.html#ad79e49e27b025d6ac9d695c4816f84d4">HatEnum</a></div><div class="ttdeci">HatEnum</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00035">Wii.h:35</a></div></div>
<div class="ttc" id="class_w_i_i_html_ae657585a560e9d214e6c0219f8b47aeb"><div class="ttname"><a href="class_w_i_i.html#ae657585a560e9d214e6c0219f8b47aeb">WII::accYnunchuck</a></div><div class="ttdeci">int16_t accYnunchuck</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00242">Wii.h:242</a></div></div>
<div class="ttc" id="class_w_i_i_html_ad4f0d2456c56414f9b8013b85a1ee7d2"><div class="ttname"><a href="class_w_i_i.html#ad4f0d2456c56414f9b8013b85a1ee7d2">WII::gyroYawZero</a></div><div class="ttdeci">int16_t gyroYawZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00276">Wii.h:276</a></div></div>
<div class="ttc" id="class_w_i_i_html_acfb290a86aa9a65dd4ae84d02e3c6ded"><div class="ttname"><a href="class_w_i_i.html#acfb290a86aa9a65dd4ae84d02e3c6ded">WII::pitchGyroSpeed</a></div><div class="ttdeci">double pitchGyroSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00255">Wii.h:255</a></div></div>
<div class="ttc" id="class_b_t_d_html_a6b66a27c0fd359e3129f53451352b55c"><div class="ttname"><a href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c">BTD::pairWithWiimote</a></div><div class="ttdeci">void pairWithWiimote()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00500">BTD.h:500</a></div></div>
<div class="ttc" id="class_w_i_i_html_accf6ca623ffe93b3c78aaf60c7fd1f46"><div class="ttname"><a href="class_w_i_i.html#accf6ca623ffe93b3c78aaf60c7fd1f46">WII::getIRs2</a></div><div class="ttdeci">uint8_t getIRs2()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00332">Wii.h:332</a></div></div>
<div class="ttc" id="class_w_i_i_html_af61f57d34b81f2a878f0126a074e3af4"><div class="ttname"><a href="class_w_i_i.html#af61f57d34b81f2a878f0126a074e3af4">WII::gyroPitch</a></div><div class="ttdeci">double gyroPitch</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00247">Wii.h:247</a></div></div>
<div class="ttc" id="class_w_i_i_html"><div class="ttname"><a href="class_w_i_i.html">WII</a></div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00047">Wii.h:47</a></div></div>
<div class="ttc" id="class_w_i_i_html_a7b183fe1809c1c595438e930b8f3f4de"><div class="ttname"><a href="class_w_i_i.html#a7b183fe1809c1c595438e930b8f3f4de">WII::getButtonPress</a></div><div class="ttdeci">bool getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01041">Wii.cpp:1041</a></div></div>
<div class="ttc" id="_b_t_d_8h_html"><div class="ttname"><a href="_b_t_d_8h.html">BTD.h</a></div></div>
<div class="ttc" id="class_w_i_i_html_a72bd4fad2e524276712a154b8cc2a16c"><div class="ttname"><a href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">WII::motionPlusConnected</a></div><div class="ttdeci">bool motionPlusConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00248">Wii.h:248</a></div></div>
<div class="ttc" id="class_w_i_i_html_a10d91cd5d73bc655be776b44d27004c9"><div class="ttname"><a href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">WII::gyroRollZero</a></div><div class="ttdeci">int16_t gyroRollZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00313">Wii.h:313</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_w_i_i_html_ac5cd06f3e9aa2a0d9b9691f00c047e72"><div class="ttname"><a href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72">WII::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00682">Wii.cpp:682</a></div></div>
<div class="ttc" id="class_w_i_i_html_afaafee11ac191ba43b6a2b989cdd137c"><div class="ttname"><a href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">WII::accXwiimote</a></div><div class="ttdeci">int16_t accXwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00272">Wii.h:272</a></div></div>
<div class="ttc" id="class_w_i_i_html_ab16e907132354be9848fd91a6a5171db"><div class="ttname"><a href="class_w_i_i.html#ab16e907132354be9848fd91a6a5171db">WII::getAnalogHat</a></div><div class="ttdeci">uint8_t getAnalogHat(Hat a)</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l01052">Wii.cpp:1052</a></div></div>
<div class="ttc" id="class_w_i_i_html_acdebdaab544ffcecf8ab09adacbd28c8"><div class="ttname"><a href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">WII::accZwiimote</a></div><div class="ttdeci">int16_t accZwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00272">Wii.h:272</a></div></div>
<div class="ttc" id="class_w_i_i_html_a72bd4fad2e524276712a154b8cc2a16c"><div class="ttname"><a href="class_w_i_i.html#a72bd4fad2e524276712a154b8cc2a16c">WII::motionPlusConnected</a></div><div class="ttdeci">bool motionPlusConnected</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00208">Wii.h:208</a></div></div>
<div class="ttc" id="class_w_i_i_html_a10d91cd5d73bc655be776b44d27004c9"><div class="ttname"><a href="class_w_i_i.html#a10d91cd5d73bc655be776b44d27004c9">WII::gyroRollZero</a></div><div class="ttdeci">int16_t gyroRollZero</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00277">Wii.h:277</a></div></div>
<div class="ttc" id="class_w_i_i_html_ac5cd06f3e9aa2a0d9b9691f00c047e72"><div class="ttname"><a href="class_w_i_i.html#ac5cd06f3e9aa2a0d9b9691f00c047e72">WII::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8cpp_source.html#l00684">Wii.cpp:684</a></div></div>
<div class="ttc" id="class_w_i_i_html_afaafee11ac191ba43b6a2b989cdd137c"><div class="ttname"><a href="class_w_i_i.html#afaafee11ac191ba43b6a2b989cdd137c">WII::accXwiimote</a></div><div class="ttdeci">int16_t accXwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00236">Wii.h:236</a></div></div>
<div class="ttc" id="class_w_i_i_html_acdebdaab544ffcecf8ab09adacbd28c8"><div class="ttname"><a href="class_w_i_i.html#acdebdaab544ffcecf8ab09adacbd28c8">WII::accZwiimote</a></div><div class="ttdeci">int16_t accZwiimote</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00236">Wii.h:236</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -89,23 +89,23 @@ 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;This library is large, <span class="keywordflow">if</span> you run into memory problems when uploading to the Arduino, disable serial debugging.</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;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="l00005"></a><span class="lineno"> 5</span>&#160;To enable the IR camera code, simply set ```<a class="code" href="settings_8h.html#a251a8e974ddd0680dbcefaa3a4ae9ae8">ENABLE_WII_IR_CAMERA</a>``` to 1 in [settings.h](settings.h).</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;This library implements the following settings:</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;* Report sensitivity mode: 00 00 00 00 00 00 90 00 41 40 00 Suggested by inio (high sensitivity)</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* Data Format: Extended mode (0x03). <a class="code" href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> mode is not working yet. The output reports 0x3e and 0x3f need tampering with</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* Data Format: Extended mode (0x03). <a class="code" href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a> mode is not working yet. The output reports 0x3e and 0x3f need tampering with</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; * In <span class="keyword">this</span> mode the camera outputs x and y coordinates and a size dimension <span class="keywordflow">for</span> the 4 brightest points.</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;Again, read through &lt;http:<span class="comment">//wiibrew.org/wiki/Wiimote#IR_Camera&gt; to get an understanding of the camera and its settings.</span></div>
<div class="ttc" id="_p_s3_enums_8h_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00194">PS3Enums.h:194</a></div></div>
<div class="ttc" id="_wii_8h_html_a8a70a2d3fd20f9005aa8dc5849beb147"><div class="ttname"><a href="_wii_8h.html#a8a70a2d3fd20f9005aa8dc5849beb147">WIICAMERA</a></div><div class="ttdeci">#define WIICAMERA</div><div class="ttdef"><b>Definition:</b> <a href="_wii_8h_source.html#l00027">Wii.h:27</a></div></div>
<div class="ttc" id="settings_8h_html_a251a8e974ddd0680dbcefaa3a4ae9ae8"><div class="ttname"><a href="settings_8h.html#a251a8e974ddd0680dbcefaa3a4ae9ae8">ENABLE_WII_IR_CAMERA</a></div><div class="ttdeci">#define ENABLE_WII_IR_CAMERA</div><div class="ttdef"><b>Definition:</b> <a href="settings_8h_source.html#l00045">settings.h:45</a></div></div>
<div class="ttc" id="_p_s3_enums_8h_html_add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679"><div class="ttname"><a href="_p_s3_enums_8h.html#add5c7a32e8138b44244caf07232161aea8b7c5cd8bd8eb51ee6d3fd0eac584679">Full</a></div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_enums_8h_source.html#l00195">PS3Enums.h:195</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: XBOXOLD.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,16 +104,16 @@ Include dependency graph for XBOXOLD.cpp:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:af4ccffb7f90c323a0eba09065159f74b"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b">XBOXOLDBUTTONS</a> []</td></tr>
<tr class="separator:af4ccffb7f90c323a0eba09065159f74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9b7834b8d579aad72b4dddfd4d9cd41"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41">XBOXOLD_BUTTONS</a> []</td></tr>
<tr class="separator:ad9b7834b8d579aad72b4dddfd4d9cd41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="af4ccffb7f90c323a0eba09065159f74b"></a>
<a class="anchor" id="ad9b7834b8d579aad72b4dddfd4d9cd41"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t XBOXOLDBUTTONS[]</td>
<td class="memname">const uint8_t XBOXOLD_BUTTONS[]</td>
</tr>
</table>
</div><div class="memdoc">
@ -150,7 +150,7 @@ Variables</h2></td></tr>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: XBOXOLD.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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 controller</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b"> 24</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b">XBOXOLDBUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41"> 24</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41">XBOXOLD_BUTTONS</a>[] PROGMEM = {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; 0x01, <span class="comment">// UP</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; 0x08, <span class="comment">// RIGHT</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; 0x02, <span class="comment">// DOWN</span></div>
@ -138,379 +138,379 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;pUsb(p), <span class="comment">// pointer to USB class instance - mandatory</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;bAddress(0), <span class="comment">// device address - mandatory</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;bPollEnable(false) { <span class="comment">// don&#39;t start polling before dongle is connected</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[i].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (i) ? 0 : 8;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = (i) ? <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a> : <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>) <span class="comment">// register in USB subsystem</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>) <span class="comment">// register in USB subsystem</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<span class="keyword">this</span>); <span class="comment">//set devConfig[] entry</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</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"><a class="line" href="class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434"> 62</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434">XBOXOLD::Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; uint8_t buf[<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>)];</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uint16_t PID;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint16_t VID;</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="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</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\nXBOXUSB Init&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="comment">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>) {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</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="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</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="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; VID = ((<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>*)buf)-&gt;idVendor;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; PID = ((<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>*)buf)-&gt;idProduct;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> ((VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a>) || (PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8495cfaf2039ba2399a3c6f3e107c90c">XBOX_OLD_PID1</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a9c98134e7ea99b12f7e4724af5b9799c">XBOX_OLD_PID2</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3856d8cf87b39551ed2278691ad891b8">XBOX_OLD_PID3</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3bf8a81e24b9c3df304fdafb06bbeb4e">XBOX_OLD_PID4</a>)) <span class="comment">// Check if VID and PID match</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>)</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = 0;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</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="l00139"></a><span class="lineno"> 139</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</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="l00145"></a><span class="lineno"> 145</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"></span> delay(300); <span class="comment">// Spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 1, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">/* The application will work in reduced host mode, so we can save program and data</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> memory space. After verifying the VID we will use known values for the</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> configuration values for device, interface, endpoints and HID for the XBOX controllers */</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">/* Initialize data structures for endpoints of device */</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x01; <span class="comment">// XBOX report endpoint</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = <a class="code" href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = <a class="code" href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x02; <span class="comment">// XBOX output endpoint</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = <a class="code" href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = <a class="code" href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 3, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</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; delay(200); <span class="comment">// Give time for address change</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a> ].epAddr, 1);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Controller Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></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; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">goto</span> Fail;</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></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;FailSetDevTblEntry:</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#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint16_t PID;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint16_t VID;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>) {</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\nAddress in use&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_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</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="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</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; VID = udd-&gt;idVendor;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; PID = udd-&gt;idProduct;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>((VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a>) || (PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8495cfaf2039ba2399a3c6f3e107c90c">XBOX_OLD_PID1</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a9c98134e7ea99b12f7e4724af5b9799c">XBOX_OLD_PID2</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3856d8cf87b39551ed2278691ad891b8">XBOX_OLD_PID3</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3bf8a81e24b9c3df304fdafb06bbeb4e">XBOX_OLD_PID4</a>)) <span class="comment">// Check if VID and PID match</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>)</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</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="l00136"></a><span class="lineno"> 136</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = 0;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</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="l00140"></a><span class="lineno"> 140</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddr: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; D_PrintHex&lt;uint8_t &gt; (<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, 0x80);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"></span> <span class="comment">//delay(300); // Spec says you should wait at least 200ms</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; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 1, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">/* The application will work in reduced host mode, so we can save program and data</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> memory space. After verifying the VID we will use known values for the</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> configuration values for device, interface, endpoints and HID for the XBOX controllers */</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="comment">/* Initialize data structures for endpoints of device */</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x01; <span class="comment">// XBOX report endpoint</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = 0;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x02; <span class="comment">// XBOX output endpoint</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = 0;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 3, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; delay(200); <span class="comment">// Give time for address change</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; rcode = <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a> ].epAddr, 1);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#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#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Controller Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;FailGetDevDescr:</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#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;FailSetDevTblEntry:</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#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">goto</span> Fail;</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></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span>FailUnknownDevice:</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;Fail:</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">Release</a>();</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765"> 234</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a>() {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">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_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = 0;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850"> 242</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a>() {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_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="l00247"></a><span class="lineno"> 247</span>&#160; readReport();</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"></span> printReport(BUFFER_SIZE); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox controller</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</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="keywordtype">void</span> XBOXOLD::readReport() {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; ButtonState = readBuf[2];</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="keywordflow">for</span> (uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(buttonValues); i++)</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; buttonValues[i] = readBuf[i + 4]; <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1</span></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; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[12] &lt;&lt; 8) | readBuf[13]);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[14] &lt;&lt; 8) | readBuf[15]);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[16] &lt;&lt; 8) | readBuf[17]);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[18] &lt;&lt; 8) | readBuf[19]);</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="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">//PrintHex&lt;uint8_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (ButtonState != OldButtonState || memcmp(buttonValues, oldButtonValues, <span class="keyword">sizeof</span>(buttonValues)) != 0) {</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <span class="keyword">sizeof</span>(buttonValues); i++) {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (oldButtonValues[i] == 0 &amp;&amp; buttonValues[i] != 0)</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; buttonClicked[i] = <span class="keyword">true</span>; <span class="comment">// Update A, B, X, Y, BLACK, WHITE, L1, and R1 click state</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; oldButtonValues[i] = buttonValues[i];</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;}</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="keywordtype">void</span> XBOXOLD::printReport(uint16_t length) { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox controller</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"></span> <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; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; length; i++) {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</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; <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="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"></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"><a class="line" href="class_x_b_o_x_o_l_d.html#a7943af8e86fd9612891b88c7c7fb586a"> 292</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a7943af8e86fd9612891b88c7c7fb586a">XBOXOLD::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b">XBOXOLDBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a42a4ade1acd55a49164099104990e09f">A</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a3f2a77ecd272aa6d6b5902faa5e5fc68">B</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a58833a3110c570fb05130d40c365d1e4">X</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a5596231eabd6cf29050967d5ac83ad84">Y</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af77fb67151d0c18d397069ad8c271ba3">BLACK</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a283fc479650da98250635b9c3c0e7e50">WHITE</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0ae5bc7ee7d6dda5340a28f91834f10543">L1</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af8d87ff07efe24755164f550526f4dac">R1</a>) <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1 are analog buttons</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> buttonValues[button]; <span class="comment">// Analog buttons</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; button); <span class="comment">// Digital buttons</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;</div>
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a16cecc4a0dc7e0f4bc84f4602da65214"> 299</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a16cecc4a0dc7e0f4bc84f4602da65214">XBOXOLD::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b) {</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b">XBOXOLDBUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a42a4ade1acd55a49164099104990e09f">A</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a3f2a77ecd272aa6d6b5902faa5e5fc68">B</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a58833a3110c570fb05130d40c365d1e4">X</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a5596231eabd6cf29050967d5ac83ad84">Y</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af77fb67151d0c18d397069ad8c271ba3">BLACK</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a283fc479650da98250635b9c3c0e7e50">WHITE</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0ae5bc7ee7d6dda5340a28f91834f10543">L1</a> || b == <a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af8d87ff07efe24755164f550526f4dac">R1</a>) { <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1 are analog buttons</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (buttonClicked[button]) {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; buttonClicked[button] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> Fail;</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;FailUnknownDevice:</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#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;Fail:</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#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</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> <a class="code" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">Release</a>();</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765"> 236</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a>() {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">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_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a> = 0;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850"> 244</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a>() {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(!bPollEnable)</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; 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="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_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="l00249"></a><span class="lineno"> 249</span>&#160; readReport();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"></span> printReport(BUFFER_SIZE); <span class="comment">// Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox controller</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"></span> <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"> 256</span>&#160;<span class="keywordtype">void</span> XBOXOLD::readReport() {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; ButtonState = readBuf[2];</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="keywordflow">for</span>(uint8_t i = 0; i &lt; <span class="keyword">sizeof</span> (buttonValues); i++)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; buttonValues[i] = readBuf[i + 4]; <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1</span></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; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[12] &lt;&lt; 8) | readBuf[13]);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[14] &lt;&lt; 8) | readBuf[15]);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[16] &lt;&lt; 8) | readBuf[17]);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[18] &lt;&lt; 8) | readBuf[19]);</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; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">//PrintHex&lt;uint8_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState || memcmp(buttonValues, oldButtonValues, <span class="keyword">sizeof</span> (buttonValues)) != 0) {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; OldButtonState = ButtonState;</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="keywordflow">for</span>(uint8_t i = 0; i &lt; <span class="keyword">sizeof</span> (buttonValues); i++) {</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(oldButtonValues[i] == 0 &amp;&amp; buttonValues[i] != 0)</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; buttonClicked[i] = <span class="keyword">true</span>; <span class="comment">// Update A, B, X, Y, BLACK, WHITE, L1, and R1 click state</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; oldButtonValues[i] = buttonValues[i];</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;}</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keywordtype">void</span> XBOXOLD::printReport(uint16_t length) { <span class="comment">//Uncomment &quot;#define PRINTREPORT&quot; to print the report send by the Xbox controller</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(readBuf == NULL)</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; length; i++) {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</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="l00289"></a><span class="lineno"> 289</span>&#160; }</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>}</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"><a class="line" href="class_x_b_o_x_o_l_d.html#a81c07adc969bcfbbb10a36b3544ee85a"> 294</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a81c07adc969bcfbbb10a36b3544ee85a">XBOXOLD::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41">XBOXOLD_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda42a4ade1acd55a49164099104990e09f">A</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3f2a77ecd272aa6d6b5902faa5e5fc68">B</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda58833a3110c570fb05130d40c365d1e4">X</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda5596231eabd6cf29050967d5ac83ad84">Y</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf77fb67151d0c18d397069ad8c271ba3">BLACK</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda283fc479650da98250635b9c3c0e7e50">WHITE</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdae5bc7ee7d6dda5340a28f91834f10543">L1</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf8d87ff07efe24755164f550526f4dac">R1</a>) <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1 are analog buttons</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> buttonValues[button]; <span class="comment">// Analog buttons</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> (ButtonState &amp; button); <span class="comment">// Digital buttons</span></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"><a class="line" href="class_x_b_o_x_o_l_d.html#a61ed3d2e7d782b4456b3ed863a50789f"> 301</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a61ed3d2e7d782b4456b3ed863a50789f">XBOXOLD::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; uint8_t button = pgm_read_byte(&amp;<a class="code" href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41">XBOXOLD_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda42a4ade1acd55a49164099104990e09f">A</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3f2a77ecd272aa6d6b5902faa5e5fc68">B</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda58833a3110c570fb05130d40c365d1e4">X</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda5596231eabd6cf29050967d5ac83ad84">Y</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf77fb67151d0c18d397069ad8c271ba3">BLACK</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda283fc479650da98250635b9c3c0e7e50">WHITE</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdae5bc7ee7d6dda5340a28f91834f10543">L1</a> || b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf8d87ff07efe24755164f550526f4dac">R1</a>) { <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1 are analog buttons</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>(buttonClicked[button]) {</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; buttonClicked[button] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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"> 308</span>&#160;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> click;</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"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#ad5a76d53ae0e101763ba5403707f5162"> 314</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_o_l_d.html#ad5a76d53ae0e101763ba5403707f5162">XBOXOLD::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a) {</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> hatValue[a];</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"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="keywordtype">void</span> XBOXOLD::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</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="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[<a class="code" href="_x_b_o_x_o_l_d_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="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="line" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9"> 324</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a>(uint8_t lValue, uint8_t rValue) {</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; uint8_t writeBuf[6];</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; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; writeBuf[1] = 0x06;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; writeBuf[3] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; writeBuf[4] = 0x00;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; writeBuf[5] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; XboxCommand(writeBuf, 6);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;}</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</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; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> click;</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"> 315</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#af1ed3d92780ba8771219c1ecf4f06485"> 316</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_o_l_d.html#af1ed3d92780ba8771219c1ecf4f06485">XBOXOLD::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> hatValue[a];</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"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="keywordtype">void</span> XBOXOLD::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</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="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>, <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[<a class="code" href="_x_b_o_x_o_l_d_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="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="line" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9"> 326</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a>(uint8_t lValue, uint8_t rValue) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; uint8_t writeBuf[6];</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"> 329</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; writeBuf[1] = 0x06;</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] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; writeBuf[4] = 0x00;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; writeBuf[5] = lValue; <span class="comment">// big weight</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; XboxCommand(writeBuf, 6);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;}</div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html">XBOXOLD.h</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00122">controllerEnums.h:122</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8245e0d30eed5fb7dc761fc350fd1765"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00234">XBOXOLD.cpp:234</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0af77fb67151d0c18d397069ad8c271ba3"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af77fb67151d0c18d397069ad8c271ba3">BLACK</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00103">controllerEnums.h:103</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a5596231eabd6cf29050967d5ac83ad84"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a5596231eabd6cf29050967d5ac83ad84">Y</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00100">controllerEnums.h:100</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8245e0d30eed5fb7dc761fc350fd1765"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00236">XBOXOLD.cpp:236</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8cpp_html_af4ccffb7f90c323a0eba09065159f74b"><div class="ttname"><a href="_x_b_o_x_o_l_d_8cpp.html#af4ccffb7f90c323a0eba09065159f74b">XBOXOLDBUTTONS</a></div><div class="ttdeci">const uint8_t XBOXOLDBUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00024">XBOXOLD.cpp:24</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00113">controllerEnums.h:113</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a3f2a77ecd272aa6d6b5902faa5e5fc68"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a3f2a77ecd272aa6d6b5902faa5e5fc68">B</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00062">controllerEnums.h:62</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00115">controllerEnums.h:115</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ab69673ea316c30268a5eedc893bea3a9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00324">XBOXOLD.cpp:324</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda283fc479650da98250635b9c3c0e7e50"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda283fc479650da98250635b9c3c0e7e50">WHITE</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00111">controllerEnums.h:111</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda58833a3110c570fb05130d40c365d1e4"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda58833a3110c570fb05130d40c365d1e4">X</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00106">controllerEnums.h:106</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ab69673ea316c30268a5eedc893bea3a9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00326">XBOXOLD.cpp:326</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda5596231eabd6cf29050967d5ac83ad84"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda5596231eabd6cf29050967d5ac83ad84">Y</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00107">controllerEnums.h:107</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a3bf8a81e24b9c3df304fdafb06bbeb4e"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a3bf8a81e24b9c3df304fdafb06bbeb4e">XBOX_OLD_PID4</a></div><div class="ttdeci">#define XBOX_OLD_PID4</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00043">XBOXOLD.h:43</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0ae5bc7ee7d6dda5340a28f91834f10543"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0ae5bc7ee7d6dda5340a28f91834f10543">L1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00083">controllerEnums.h:83</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a06a318db8037f25a8d9bb62785dbacb9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">XBOXOLD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00160">XBOXOLD.h:160</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a06a318db8037f25a8d9bb62785dbacb9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">XBOXOLD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00159">XBOXOLD.h:159</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00025">PS3USB.h:25</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda3f2a77ecd272aa6d6b5902faa5e5fc68"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3f2a77ecd272aa6d6b5902faa5e5fc68">B</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00063">controllerEnums.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8cpp_html_ad9b7834b8d579aad72b4dddfd4d9cd41"><div class="ttname"><a href="_x_b_o_x_o_l_d_8cpp.html#ad9b7834b8d579aad72b4dddfd4d9cd41">XBOXOLD_BUTTONS</a></div><div class="ttdeci">const uint8_t XBOXOLD_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00024">XBOXOLD.cpp:24</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaf77fb67151d0c18d397069ad8c271ba3"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf77fb67151d0c18d397069ad8c271ba3">BLACK</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00110">controllerEnums.h:110</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda42a4ade1acd55a49164099104990e09f"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda42a4ade1acd55a49164099104990e09f">A</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00064">controllerEnums.h:64</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="message_8h_html_a0ce3a725ee65614d7f95cda10e4d2e91"><div class="ttname"><a href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a></div><div class="ttdeci">#define NotifyFailUnknownDevice(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00054">message.h:54</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdaf8d87ff07efe24755164f550526f4dac"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdaf8d87ff07efe24755164f550526f4dac">R1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00085">controllerEnums.h:85</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a283fc479650da98250635b9c3c0e7e50"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a283fc479650da98250635b9c3c0e7e50">WHITE</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00104">controllerEnums.h:104</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_af1ed3d92780ba8771219c1ecf4f06485"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#af1ed3d92780ba8771219c1ecf4f06485">XBOXOLD::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00316">XBOXOLD.cpp:316</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8e7834e5604c4fb588cceab9258d0568"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a></div><div class="ttdeci">#define XBOX_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00036">XBOXOLD.h:36</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a4fd9ad9bf7a7d5767940c2ec224ef5e8"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a></div><div class="ttdeci">#define XBOX_INPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00032">XBOXOLD.h:32</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00124">controllerEnums.h:124</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a119c511d09ecc777437584a86858d86f"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a119c511d09ecc777437584a86858d86f">XBOXOLD::XBOXOLD</a></div><div class="ttdeci">XBOXOLD(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00047">XBOXOLD.cpp:47</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ad4d26e1c566064f2259faf65f0858b6e"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a></div><div class="ttdeci">#define EP_INTERRUPT</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00028">PS3USB.h:28</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8495cfaf2039ba2399a3c6f3e107c90c"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8495cfaf2039ba2399a3c6f3e107c90c">XBOX_OLD_PID1</a></div><div class="ttdeci">#define XBOX_OLD_PID1</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00040">XBOXOLD.h:40</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00111">controllerEnums.h:111</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_ab029b2c21fb0c240022cc50f465d4580"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a></div><div class="ttdeci">#define JOYTECH_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00038">XBOXOLD.h:38</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a58833a3110c570fb05130d40c365d1e4"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a58833a3110c570fb05130d40c365d1e4">X</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00099">controllerEnums.h:99</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7943af8e86fd9612891b88c7c7fb586a"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7943af8e86fd9612891b88c7c7fb586a">XBOXOLD::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00292">XBOXOLD.cpp:292</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a2b4d7d994ab6f5e1d1344d4162e9f5fb"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">XBOXOLD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00156">XBOXOLD.h:156</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a2b4d7d994ab6f5e1d1344d4162e9f5fb"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">XBOXOLD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00155">XBOXOLD.h:155</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ad5a76d53ae0e101763ba5403707f5162"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ad5a76d53ae0e101763ba5403707f5162">XBOXOLD::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00314">XBOXOLD.cpp:314</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a332bf499dd0434d70db8ad8a6f3f4850"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00242">XBOXOLD.cpp:242</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a332bf499dd0434d70db8ad8a6f3f4850"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00244">XBOXOLD.cpp:244</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a9c98134e7ea99b12f7e4724af5b9799c"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a9c98134e7ea99b12f7e4724af5b9799c">XBOX_OLD_PID2</a></div><div class="ttdeci">#define XBOX_OLD_PID2</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00041">XBOXOLD.h:41</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a2f5523a1aaa6718e1d11c6bc5b29a575"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a></div><div class="ttdeci">#define MADCATZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00037">XBOXOLD.h:37</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a92d2d844a70224a10c100c0a877aacfe"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a></div><div class="ttdeci">#define XBOX_OUTPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00033">XBOXOLD.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fdae5bc7ee7d6dda5340a28f91834f10543"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdae5bc7ee7d6dda5340a28f91834f10543">L1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00084">controllerEnums.h:84</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7260253c704b147e6dfd762e13222434"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434">XBOXOLD::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00062">XBOXOLD.cpp:62</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00049">XBOXOLD.h:49</a></div></div>
<div class="ttc" id="max3421e_8h_html_aca6a8aa4f0aebbe07c5e175572a92ef7"><div class="ttname"><a href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a></div><div class="ttdeci">#define bmRCVTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00185">max3421e.h:185</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a16cecc4a0dc7e0f4bc84f4602da65214"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a16cecc4a0dc7e0f4bc84f4602da65214">XBOXOLD::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00299">XBOXOLD.cpp:299</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a3856d8cf87b39551ed2278691ad891b8"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a3856d8cf87b39551ed2278691ad891b8">XBOX_OLD_PID3</a></div><div class="ttdeci">#define XBOX_OLD_PID3</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00042">XBOXOLD.h:42</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00038">BTD.h:38</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_aa091ff52ba7ad4216b0cd0f18651b755"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XBOXOLD::XboxConnected</a></div><div class="ttdeci">bool XboxConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00148">XBOXOLD.h:148</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4834ae7378471b63b9a1985c6294006f"><div class="ttname"><a href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a></div><div class="ttdeci">#define bmSNDTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00187">max3421e.h:187</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_aa091ff52ba7ad4216b0cd0f18651b755"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XBOXOLD::XboxConnected</a></div><div class="ttdeci">bool XboxConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00147">XBOXOLD.h:147</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a42a4ade1acd55a49164099104990e09f"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a42a4ade1acd55a49164099104990e09f">A</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00063">controllerEnums.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a61ed3d2e7d782b4456b3ed863a50789f"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a61ed3d2e7d782b4456b3ed863a50789f">XBOXOLD::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00301">XBOXOLD.cpp:301</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a81c07adc969bcfbbb10a36b3544ee85a"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a81c07adc969bcfbbb10a36b3544ee85a">XBOXOLD::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00294">XBOXOLD.cpp:294</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8f4ee68cc0f05690f5f26104c7d9e490"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a></div><div class="ttdeci">#define XBOX_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00031">XBOXOLD.h:31</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ae28d3306b484750d7067fa5f7ed0beae"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">XBOXOLD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00158">XBOXOLD.h:158</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ae28d3306b484750d7067fa5f7ed0beae"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">XBOXOLD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00157">XBOXOLD.h:157</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00120">controllerEnums.h:120</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00118">controllerEnums.h:118</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00117">controllerEnums.h:117</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0af8d87ff07efe24755164f550526f4dac"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0af8d87ff07efe24755164f550526f4dac">R1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00084">controllerEnums.h:84</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: XBOXOLD.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -365,7 +365,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: XBOXOLD.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -158,91 +158,91 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a20c8b928ca5e7c1a758a605ec45fe2ee"> 102</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a20c8b928ca5e7c1a758a605ec45fe2ee">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> ((vid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> || vid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> || vid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a>) &amp;&amp; (pid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8495cfaf2039ba2399a3c6f3e107c90c">XBOX_OLD_PID1</a> || pid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a9c98134e7ea99b12f7e4724af5b9799c">XBOX_OLD_PID2</a> || pid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3856d8cf87b39551ed2278691ad891b8">XBOX_OLD_PID3</a> || pid == <a class="code" href="_x_b_o_x_o_l_d_8h.html#a3bf8a81e24b9c3df304fdafb06bbeb4e">XBOX_OLD_PID4</a>));</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a7943af8e86fd9612891b88c7c7fb586a">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a16cecc4a0dc7e0f4bc84f4602da65214">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; int16_t <a class="code" href="class_x_b_o_x_o_l_d.html#ad5a76d53ae0e101763ba5403707f5162">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746"> 132</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746">setRumbleOff</a>() {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">setRumbleOn</a>(0, 0);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">setRumbleOn</a>(uint8_t lValue, uint8_t rValue);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159"> 146</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755"> 148</a></span>&#160; };</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a>;</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">protected</span>:</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb"> 156</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae"> 158</a></span>&#160; uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9"> 160</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[<a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></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; <span class="keywordtype">bool</span> bPollEnable;</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">/* Variables to store the digital buttons */</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t ButtonState;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t OldButtonState;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; uint8_t ButtonClickState;</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; <span class="comment">/* Variables to store the analog buttons */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint8_t buttonValues[8]; <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; uint8_t oldButtonValues[8];</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">bool</span> buttonClicked[8];</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; int16_t hatValue[4]; <span class="comment">// Joystick values</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_o_l_d_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// Read incoming data</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> printReport(uint16_t length); <span class="comment">// Print incoming date</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> XboxCommand(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8245e0d30eed5fb7dc761fc350fd1765"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00234">XBOXOLD.cpp:234</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7a7d0f28e51ef4650ac5e2b6c883b159"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159">XBOXOLD::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00146">XBOXOLD.h:146</a></div></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#a81c07adc969bcfbbb10a36b3544ee85a">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a61ed3d2e7d782b4456b3ed863a50789f">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; int16_t <a class="code" href="class_x_b_o_x_o_l_d.html#af1ed3d92780ba8771219c1ecf4f06485">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746"> 131</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746">setRumbleOff</a>() {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">setRumbleOn</a>(0, 0);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">setRumbleOn</a>(uint8_t lValue, uint8_t rValue);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159"> 145</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755"> 147</a></span>&#160; };</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XboxConnected</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb"> 155</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">pUsb</a>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae"> 157</a></span>&#160; uint8_t <a class="code" href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">bAddress</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9"> 159</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">epInfo</a>[<a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>];</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">private</span>:</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">/* Variables to store the digital buttons */</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; uint8_t ButtonState;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t OldButtonState;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t ButtonClickState;</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="comment">/* Variables to store the analog buttons */</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint8_t buttonValues[8]; <span class="comment">// A, B, X, Y, BLACK, WHITE, L1, and R1</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint8_t oldButtonValues[8];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> buttonClicked[8];</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; int16_t hatValue[4]; <span class="comment">// Joystick values</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_o_l_d_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// Read incoming data</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> printReport(uint16_t length); <span class="comment">// Print incoming date</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">void</span> XboxCommand(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;};</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8245e0d30eed5fb7dc761fc350fd1765"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8245e0d30eed5fb7dc761fc350fd1765">XBOXOLD::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00236">XBOXOLD.cpp:236</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7a7d0f28e51ef4650ac5e2b6c883b159"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7a7d0f28e51ef4650ac5e2b6c883b159">XBOXOLD::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00145">XBOXOLD.h:145</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ac2db53abfe0aae15d56ef65b57a2b38a"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ac2db53abfe0aae15d56ef65b57a2b38a">XBOXOLD::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00084">XBOXOLD.h:84</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html">XBOXOLD</a></div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00052">XBOXOLD.h:52</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ab69673ea316c30268a5eedc893bea3a9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00324">XBOXOLD.cpp:324</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ab69673ea316c30268a5eedc893bea3a9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ab69673ea316c30268a5eedc893bea3a9">XBOXOLD::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00326">XBOXOLD.cpp:326</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a20c8b928ca5e7c1a758a605ec45fe2ee"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a20c8b928ca5e7c1a758a605ec45fe2ee">XBOXOLD::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00102">XBOXOLD.h:102</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a3bf8a81e24b9c3df304fdafb06bbeb4e"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a3bf8a81e24b9c3df304fdafb06bbeb4e">XBOX_OLD_PID4</a></div><div class="ttdeci">#define XBOX_OLD_PID4</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00043">XBOXOLD.h:43</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_af4d77a5108f2e6812ba00be1b0374829"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#af4d77a5108f2e6812ba00be1b0374829">XBOXOLD::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00092">XBOXOLD.h:92</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a06a318db8037f25a8d9bb62785dbacb9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">XBOXOLD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00160">XBOXOLD.h:160</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a06a318db8037f25a8d9bb62785dbacb9"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a06a318db8037f25a8d9bb62785dbacb9">XBOXOLD::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00159">XBOXOLD.h:159</a></div></div>
<div class="ttc" id="controller_enums_8h_html"><div class="ttname"><a href="controller_enums_8h.html">controllerEnums.h</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_af1ed3d92780ba8771219c1ecf4f06485"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#af1ed3d92780ba8771219c1ecf4f06485">XBOXOLD::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00316">XBOXOLD.cpp:316</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8e7834e5604c4fb588cceab9258d0568"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a></div><div class="ttdeci">#define XBOX_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00036">XBOXOLD.h:36</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a119c511d09ecc777437584a86858d86f"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a119c511d09ecc777437584a86858d86f">XBOXOLD::XBOXOLD</a></div><div class="ttdeci">XBOXOLD(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00047">XBOXOLD.cpp:47</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8495cfaf2039ba2399a3c6f3e107c90c"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8495cfaf2039ba2399a3c6f3e107c90c">XBOX_OLD_PID1</a></div><div class="ttdeci">#define XBOX_OLD_PID1</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00040">XBOXOLD.h:40</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_ab029b2c21fb0c240022cc50f465d4580"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a></div><div class="ttdeci">#define JOYTECH_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00038">XBOXOLD.h:38</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7943af8e86fd9612891b88c7c7fb586a"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7943af8e86fd9612891b88c7c7fb586a">XBOXOLD::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00292">XBOXOLD.cpp:292</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a2b4d7d994ab6f5e1d1344d4162e9f5fb"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">XBOXOLD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00156">XBOXOLD.h:156</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ad5a76d53ae0e101763ba5403707f5162"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ad5a76d53ae0e101763ba5403707f5162">XBOXOLD::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00314">XBOXOLD.cpp:314</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a332bf499dd0434d70db8ad8a6f3f4850"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00242">XBOXOLD.cpp:242</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a2b4d7d994ab6f5e1d1344d4162e9f5fb"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a2b4d7d994ab6f5e1d1344d4162e9f5fb">XBOXOLD::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00155">XBOXOLD.h:155</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a332bf499dd0434d70db8ad8a6f3f4850"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a332bf499dd0434d70db8ad8a6f3f4850">XBOXOLD::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00244">XBOXOLD.cpp:244</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a9c98134e7ea99b12f7e4724af5b9799c"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a9c98134e7ea99b12f7e4724af5b9799c">XBOX_OLD_PID2</a></div><div class="ttdeci">#define XBOX_OLD_PID2</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00041">XBOXOLD.h:41</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a2f5523a1aaa6718e1d11c6bc5b29a575"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a></div><div class="ttdeci">#define MADCATZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00037">XBOXOLD.h:37</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a7260253c704b147e6dfd762e13222434"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434">XBOXOLD::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00062">XBOXOLD.cpp:62</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00049">XBOXOLD.h:49</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a16cecc4a0dc7e0f4bc84f4602da65214"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a16cecc4a0dc7e0f4bc84f4602da65214">XBOXOLD::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00299">XBOXOLD.cpp:299</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a3856d8cf87b39551ed2278691ad891b8"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a3856d8cf87b39551ed2278691ad891b8">XBOX_OLD_PID3</a></div><div class="ttdeci">#define XBOX_OLD_PID3</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00042">XBOXOLD.h:42</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_aa091ff52ba7ad4216b0cd0f18651b755"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XBOXOLD::XboxConnected</a></div><div class="ttdeci">bool XboxConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00148">XBOXOLD.h:148</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8014cc70e141362e09beeedb49428746"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746">XBOXOLD::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00132">XBOXOLD.h:132</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ae28d3306b484750d7067fa5f7ed0beae"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">XBOXOLD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00158">XBOXOLD.h:158</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_aa091ff52ba7ad4216b0cd0f18651b755"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#aa091ff52ba7ad4216b0cd0f18651b755">XBOXOLD::XboxConnected</a></div><div class="ttdeci">bool XboxConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00147">XBOXOLD.h:147</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a61ed3d2e7d782b4456b3ed863a50789f"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a61ed3d2e7d782b4456b3ed863a50789f">XBOXOLD::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00301">XBOXOLD.cpp:301</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a8014cc70e141362e09beeedb49428746"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a8014cc70e141362e09beeedb49428746">XBOXOLD::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00131">XBOXOLD.h:131</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_a81c07adc969bcfbbb10a36b3544ee85a"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#a81c07adc969bcfbbb10a36b3544ee85a">XBOXOLD::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8cpp_source.html#l00294">XBOXOLD.cpp:294</a></div></div>
<div class="ttc" id="class_x_b_o_x_o_l_d_html_ae28d3306b484750d7067fa5f7ed0beae"><div class="ttname"><a href="class_x_b_o_x_o_l_d.html#ae28d3306b484750d7067fa5f7ed0beae">XBOXOLD::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00157">XBOXOLD.h:157</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00025">XBOXOLD.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for XBOXRECV.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.5
</a> 1.8.6
</small></address>
</body>
</html>

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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -397,7 +397,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -161,124 +161,124 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a3881c65a52835e2eb824af1bde0a4192"> 116</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a3881c65a52835e2eb824af1bde0a4192">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> ((vid == <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> || vid == <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> || vid == <a class="code" href="_x_b_o_x_r_e_c_v_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a>) &amp;&amp; (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="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</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="l00135"></a><span class="lineno"> 135</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="l00145"></a><span class="lineno"> 145</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="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#acb95505bebd1a9a3aee37097e39187f4">disconnect</a>(uint8_t controller = 0);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751"> 157</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="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</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="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5"> 166</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="l00167"></a><span class="lineno"> 167</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="l00168"></a><span class="lineno"> 168</span>&#160; };</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</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="l00183"></a><span class="lineno"> 183</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="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a"> 189</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="l00190"></a><span class="lineno"> 190</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="l00191"></a><span class="lineno"> 191</span>&#160; };</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00203"></a><span class="lineno"> 203</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="l00209"></a><span class="lineno"> 209</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="l00215"></a><span class="lineno"> 215</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="l00221"></a><span class="lineno"> 221</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="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583"> 227</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c"> 229</a></span>&#160; };</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</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="l00235"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a"> 235</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="l00236"></a><span class="lineno"> 236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8"> 239</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730"> 241</a></span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb"> 243</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>];</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="keyword">private</span>:</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> onInit(uint8_t controller);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</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="keywordtype">bool</span> bPollEnable;</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">/* Variables to store the buttons */</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint32_t ButtonState[4];</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; uint32_t OldButtonState[4];</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; uint16_t ButtonClickState[4];</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; int16_t hatValue[4][4];</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; uint16_t controllerStatus[4];</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordtype">bool</span> buttonStateChanged[4]; <span class="comment">// True if a button has changed</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordtype">bool</span> L2Clicked[4]; <span class="comment">// These buttons are analog, so we use we use these bools to check if they where clicked or not</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordtype">bool</span> R2Clicked[4];</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; uint32_t checkStatusTimer; <span class="comment">// Timing for checkStatus() signals</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; uint8_t writeBuf[7]; <span class="comment">// General purpose buffer for output data</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="keywordtype">void</span> readReport(uint8_t controller); <span class="comment">// read incoming data</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> printReport(uint8_t controller, uint8_t nBytes); <span class="comment">// print incoming date - Uncomment for debugging</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="comment">/* Private commands */</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordtype">void</span> XboxCommand(uint8_t controller, uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">void</span> checkStatus();</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</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a7c3aadc230ee4f8622a4d27dd716254d">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b, uint8_t controller = 0);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#af27740a22386f55ba48ae1a67587eb19">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b, uint8_t controller = 0);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; int16_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a286c2fa2aa7f6e80108868bbb66c177b">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a, uint8_t controller = 0);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#acb95505bebd1a9a3aee37097e39187f4">disconnect</a>(uint8_t controller = 0);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751"> 156</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="l00157"></a><span class="lineno"> 157</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="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</span>&#160; };</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5"> 165</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="l00166"></a><span class="lineno"> 166</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="l00167"></a><span class="lineno"> 167</span>&#160; };</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</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="l00182"></a><span class="lineno"> 182</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="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a"> 188</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="l00189"></a><span class="lineno"> 189</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="l00190"></a><span class="lineno"> 190</span>&#160; };</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a816d81caa0bdbf8523acb69e7693a142">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> l, uint8_t controller = 0);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a0bff2ed2e08cfbd657b5731ae1abec68">setLedBlink</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> l, uint8_t controller = 0);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#a4f4bf40c7ab250c75b7d719c6464fca1">setLedMode</a>(<a class="code" href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a> lm, uint8_t controller = 0);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</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="l00220"></a><span class="lineno"> 220</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="l00221"></a><span class="lineno"> 221</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583"> 226</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; pFuncOnInit = funcOnInit;</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c"> 228</a></span>&#160; };</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</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="l00234"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a"> 234</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="l00235"></a><span class="lineno"> 235</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8"> 238</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">pUsb</a>;</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730"> 240</a></span>&#160; uint8_t <a class="code" href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">bAddress</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb"> 242</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">epInfo</a>[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</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;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">void</span> onInit(uint8_t controller);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; void (*pFuncOnInit)(void); <span class="comment">// Pointer to function called in onInit()</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</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="comment">/* Variables to store the buttons */</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint32_t ButtonState[4];</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint32_t OldButtonState[4];</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; uint16_t ButtonClickState[4];</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; int16_t hatValue[4][4];</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; uint16_t controllerStatus[4];</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">bool</span> buttonStateChanged[4]; <span class="comment">// True if a button has changed</span></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="keywordtype">bool</span> L2Clicked[4]; <span class="comment">// These buttons are analog, so we use we use these bools to check if they where clicked or not</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordtype">bool</span> R2Clicked[4];</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; uint32_t checkStatusTimer; <span class="comment">// Timing for checkStatus() signals</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"> 269</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_r_e_c_v_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint8_t writeBuf[7]; <span class="comment">// General purpose buffer for output data</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">void</span> readReport(uint8_t controller); <span class="comment">// read incoming data</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">void</span> printReport(uint8_t controller, uint8_t nBytes); <span class="comment">// print incoming date - Uncomment for debugging</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> XboxCommand(uint8_t controller, uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordtype">void</span> checkStatus();</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;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a6842663964e470b86786f046e4bc30d9"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a6842663964e470b86786f046e4bc30d9">XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</a></div><div class="ttdeci">#define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00049">XBOXRECV.h:49</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a163310ab5d09b8192bebf57b4db9131f"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a163310ab5d09b8192bebf57b4db9131f">XBOXRECV::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00426">XBOXRECV.cpp:426</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_aafe1688ba3dc9b9ac425ebbbf001a1cc"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc">XBOXRECV::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00301">XBOXRECV.cpp:301</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_addf7c0dcfbdb025f2283dcd118b5ab76"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">XBOXRECV::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00554">XBOXRECV.cpp:554</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_abb8a1831f62ea139a2255c67bb24330f"><div class="ttname"><a href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a></div><div class="ttdeci">LEDModeEnum</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_aafe1688ba3dc9b9ac425ebbbf001a1cc"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#aafe1688ba3dc9b9ac425ebbbf001a1cc">XBOXRECV::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00292">XBOXRECV.cpp:292</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_addf7c0dcfbdb025f2283dcd118b5ab76"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#addf7c0dcfbdb025f2283dcd118b5ab76">XBOXRECV::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00556">XBOXRECV.cpp:556</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a1a97ce2829a30b96ea6640d387d245a9"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a1a97ce2829a30b96ea6640d387d245a9">XBOX_WIRELESS_RECEIVER_PID</a></div><div class="ttdeci">#define XBOX_WIRELESS_RECEIVER_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00048">XBOXRECV.h:48</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a1d4bdb1b740c87fd51aca3969e67c730"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">XBOXRECV::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00241">XBOXRECV.h:241</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a741fda8096331cf86cf8534b04373b4a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a">XBOXRECV::setLedOff</a></div><div class="ttdeci">void setLedOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00189">XBOXRECV.h:189</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a1d4bdb1b740c87fd51aca3969e67c730"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a1d4bdb1b740c87fd51aca3969e67c730">XBOXRECV::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00240">XBOXRECV.h:240</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a741fda8096331cf86cf8534b04373b4a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a741fda8096331cf86cf8534b04373b4a">XBOXRECV::setLedOff</a></div><div class="ttdeci">void setLedOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00188">XBOXRECV.h:188</a></div></div>
<div class="ttc" id="xbox_enums_8h_html"><div class="ttname"><a href="xbox_enums_8h.html">xboxEnums.h</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00027">XBOXRECV.h:27</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a2d58b0a20eb804d853713ade83d01631"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a2d58b0a20eb804d853713ade83d01631">XBOXRECV::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00098">XBOXRECV.h:98</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ac07faada38e159f1e7831d90863ebe3a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">XBOXRECV::Xbox360Connected</a></div><div class="ttdeci">uint8_t Xbox360Connected[4]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00235">XBOXRECV.h:235</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ae78ddfff307d26b0ed35dfb75173adf7"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ae78ddfff307d26b0ed35dfb75173adf7">XBOXRECV::buttonChanged</a></div><div class="ttdeci">bool buttonChanged(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00450">XBOXRECV.cpp:450</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a2931e13960cde2c20adbcaf34cee84c5"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5">XBOXRECV::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00166">XBOXRECV.h:166</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ac07faada38e159f1e7831d90863ebe3a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ac07faada38e159f1e7831d90863ebe3a">XBOXRECV::Xbox360Connected</a></div><div class="ttdeci">uint8_t Xbox360Connected[4]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00234">XBOXRECV.h:234</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a4f4bf40c7ab250c75b7d719c6464fca1"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a4f4bf40c7ab250c75b7d719c6464fca1">XBOXRECV::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDModeEnum lm, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00526">XBOXRECV.cpp:526</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ae78ddfff307d26b0ed35dfb75173adf7"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ae78ddfff307d26b0ed35dfb75173adf7">XBOXRECV::buttonChanged</a></div><div class="ttdeci">bool buttonChanged(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00441">XBOXRECV.cpp:441</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a2931e13960cde2c20adbcaf34cee84c5"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a2931e13960cde2c20adbcaf34cee84c5">XBOXRECV::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00165">XBOXRECV.h:165</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a3dd42b9a1351f172fc6e39df2fe99398"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a3dd42b9a1351f172fc6e39df2fe99398">XBOXRECV::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00040">XBOXRECV.cpp:40</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a570568108edafee8d060aad8fe40db57"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a570568108edafee8d060aad8fe40db57">XBOXRECV::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00106">XBOXRECV.h:106</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a8e7834e5604c4fb588cceab9258d0568"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a></div><div class="ttdeci">#define XBOX_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00044">XBOXRECV.h:44</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ad045d22c1e2f0657f72786539f418751"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751">XBOXRECV::setAllOff</a></div><div class="ttdeci">void setAllOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00157">XBOXRECV.h:157</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ad0e6b53a818516b7d6af0beaa8cebc7a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">XBOXRECV::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00291">XBOXRECV.cpp:291</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ad045d22c1e2f0657f72786539f418751"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ad045d22c1e2f0657f72786539f418751">XBOXRECV::setAllOff</a></div><div class="ttdeci">void setAllOff(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00156">XBOXRECV.h:156</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ad0e6b53a818516b7d6af0beaa8cebc7a"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ad0e6b53a818516b7d6af0beaa8cebc7a">XBOXRECV::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00282">XBOXRECV.cpp:282</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a5ff16bba78f05af3023f395a342b625c"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XBOXRECV::XboxReceiverConnected</a></div><div class="ttdeci">bool XboxReceiverConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00229">XBOXRECV.h:229</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ad66796b66d332bfa1cb57b4ba76cb0fc"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ad66796b66d332bfa1cb57b4ba76cb0fc">XBOXRECV::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LED l, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00520">XBOXRECV.cpp:520</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a4ab056654c97c054aebb683cac95e21b"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a4ab056654c97c054aebb683cac95e21b">XBOXRECV::setLedOn</a></div><div class="ttdeci">void setLedOn(LED l, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00515">XBOXRECV.cpp:515</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_aaa7a0d0861b8303a4b1654684d185b4f"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#aaa7a0d0861b8303a4b1654684d185b4f">XBOXRECV::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00475">XBOXRECV.cpp:475</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a57effb96f46e458675a2653d4c543ca2"><div class="ttname"><a href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a></div><div class="ttdeci">LEDMode</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_af27740a22386f55ba48ae1a67587eb19"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#af27740a22386f55ba48ae1a67587eb19">XBOXRECV::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00417">XBOXRECV.cpp:417</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a816d81caa0bdbf8523acb69e7693a142"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a816d81caa0bdbf8523acb69e7693a142">XBOXRECV::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum l, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00515">XBOXRECV.cpp:515</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a7c3aadc230ee4f8622a4d27dd716254d"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a7c3aadc230ee4f8622a4d27dd716254d">XBOXRECV::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(ButtonEnum b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00409">XBOXRECV.cpp:409</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a5ff16bba78f05af3023f395a342b625c"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a5ff16bba78f05af3023f395a342b625c">XBOXRECV::XboxReceiverConnected</a></div><div class="ttdeci">bool XboxReceiverConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00228">XBOXRECV.h:228</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_aaa7a0d0861b8303a4b1654684d185b4f"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#aaa7a0d0861b8303a4b1654684d185b4f">XBOXRECV::getBatteryLevel</a></div><div class="ttdeci">uint8_t getBatteryLevel(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00466">XBOXRECV.cpp:466</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a286c2fa2aa7f6e80108868bbb66c177b"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a286c2fa2aa7f6e80108868bbb66c177b">XBOXRECV::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00437">XBOXRECV.cpp:437</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ac856259af28db351f85302b5eddabf1d"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ac856259af28db351f85302b5eddabf1d">XBOXRECV::XBOXRECV</a></div><div class="ttdeci">XBOXRECV(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00025">XBOXRECV.cpp:25</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_ab029b2c21fb0c240022cc50f465d4580"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a></div><div class="ttdeci">#define JOYTECH_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00046">XBOXRECV.h:46</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_abb75b732b431a29b6fef0fd7c895f41b"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#abb75b732b431a29b6fef0fd7c895f41b">XBOXRECV::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDMode lm, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00524">XBOXRECV.cpp:524</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a0bff2ed2e08cfbd657b5731ae1abec68"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a0bff2ed2e08cfbd657b5731ae1abec68">XBOXRECV::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LEDEnum l, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00522">XBOXRECV.cpp:522</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a07de216bf16a83501d74463c00bf1fc8"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a07de216bf16a83501d74463c00bf1fc8">XBOXRECV::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00137">XBOXRECV.cpp:137</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a2f5523a1aaa6718e1d11c6bc5b29a575"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a></div><div class="ttdeci">#define MADCATZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00045">XBOXRECV.h:45</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a7986a3cf050bd91c7fed44a7e7eac125"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a7986a3cf050bd91c7fed44a7e7eac125">XBOXRECV::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00506">XBOXRECV.cpp:506</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a3881c65a52835e2eb824af1bde0a4192"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a3881c65a52835e2eb824af1bde0a4192">XBOXRECV::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00116">XBOXRECV.h:116</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_aef2c97b6f1d6eba631477f2d6c9f6de5"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#aef2c97b6f1d6eba631477f2d6c9f6de5">XBOXRECV::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHat a, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00446">XBOXRECV.cpp:446</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ababaa2f28de8bf6749fe649b4e93c583"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583">XBOXRECV::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00227">XBOXRECV.h:227</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a14f355acaf2cfad072c0c7c139a3e1b2"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a14f355acaf2cfad072c0c7c139a3e1b2">XBOXRECV::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(Button b, uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00418">XBOXRECV.cpp:418</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_ababaa2f28de8bf6749fe649b4e93c583"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#ababaa2f28de8bf6749fe649b4e93c583">XBOXRECV::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00226">XBOXRECV.h:226</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_acb95505bebd1a9a3aee37097e39187f4"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#acb95505bebd1a9a3aee37097e39187f4">XBOXRECV::disconnect</a></div><div class="ttdeci">void disconnect(uint8_t controller=0)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8cpp_source.html#l00497">XBOXRECV.cpp:497</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html">XBOXRECV</a></div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00058">XBOXRECV.h:58</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a53047c86c8c2f625916af62238d50fc8"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">XBOXRECV::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00239">XBOXRECV.h:239</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_af97c8d0efc945fa4ba1d120c8a5a9cbb"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">XBOXRECV::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00243">XBOXRECV.h:243</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_a53047c86c8c2f625916af62238d50fc8"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#a53047c86c8c2f625916af62238d50fc8">XBOXRECV::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00238">XBOXRECV.h:238</a></div></div>
<div class="ttc" id="class_x_b_o_x_r_e_c_v_html_af97c8d0efc945fa4ba1d120c8a5a9cbb"><div class="ttname"><a href="class_x_b_o_x_r_e_c_v.html#af97c8d0efc945fa4ba1d120c8a5a9cbb">XBOXRECV::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00242">XBOXRECV.h:242</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00051">XBOXRECV.h:51</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for XBOXUSB.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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -115,431 +115,435 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;pUsb(p), <span class="comment">// pointer to USB class instance - mandatory</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;bAddress(0), <span class="comment">// device address - mandatory</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;bPollEnable(false) { <span class="comment">// don&#39;t start polling before dongle is connected</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[i].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (i) ? 0 : 8;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = (i) ? <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a> : <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>) <span class="comment">// register in USB subsystem</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>) <span class="comment">// register in USB subsystem</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</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#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<span class="keyword">this</span>); <span class="comment">//set devConfig[] entry</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e"> 38</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e">XBOXUSB::Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; uint8_t buf[<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>)];</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint16_t PID;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint16_t VID;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<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_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_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_core_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>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<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_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_core_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_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_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; oldep_ptr = 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;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<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">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>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</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; VID = ((<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>*)buf)-&gt;idVendor;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; PID = ((<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>*)buf)-&gt;idProduct;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a>) <span class="comment">// Check VID</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_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_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; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a>) <span class="comment">// Check PID</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="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="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</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#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</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="l00123"></a><span class="lineno"> 123</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="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160; D_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="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"></span> delay(300); <span class="comment">// Spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 1, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</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">/* The application will work in reduced host mode, so we can save program and data</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> memory space. After verifying the VID we will use known values for the</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> configuration values for device, interface, endpoints and HID for the XBOX360 Controllers */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">/* Initialize data structures for endpoints of device */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x01; <span class="comment">// XBOX 360 report endpoint</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = <a class="code" href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = <a class="code" href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x02; <span class="comment">// XBOX 360 output endpoint</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = <a class="code" href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = <a class="code" href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; 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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 3, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; delay(200); <span class="comment">// Give time for address change</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; 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#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a> ].epAddr, 1);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Controller Connected\r\n&quot;</span>), 0x80);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span> onInit();</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">Xbox360Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint16_t PID;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint16_t VID;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</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="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>), 0x80);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</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\nepinfo is null&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_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</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="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</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">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; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; VID = udd-&gt;idVendor;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; PID = udd-&gt;idProduct;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a> &amp;&amp; VID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a>) <span class="comment">// Check VID</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</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="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</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="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</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="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nThis library only supports Xbox 360 controllers via USB&quot;</span>), 0x80);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(PID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#a7f049407d82f21dfa4a706c9006877ee">MADCATZ_WIRED_PID</a> &amp;&amp; PID != <a class="code" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a>) <span class="comment">// Check PID</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">goto</span> FailUnknownDevice;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <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="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</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#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</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="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</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="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</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="l00128"></a><span class="lineno"> 128</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#ifdef EXTRADEBUG</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</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="l00134"></a><span class="lineno"> 134</span>&#160; D_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="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"></span> <span class="comment">//delay(300); // Spec says you should wait at least 200ms</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</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="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 1, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">/* The application will work in reduced host mode, so we can save program and data</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> memory space. After verifying the VID we will use known values for the</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> configuration values for device, interface, endpoints and HID for the XBOX360 Controllers */</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/* Initialize data structures for endpoints of device */</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x01; <span class="comment">// XBOX 360 report endpoint</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = 0;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0x02; <span class="comment">// XBOX 360 output endpoint</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = <a class="code" href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a>; <span class="comment">// Only poll once for interrupt endpoints</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = <a class="code" href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">bmSndToggle</a> = 0;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a> ].<a class="code" href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">bmRcvToggle</a> = 0;</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; 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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 3, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</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"> 174</span>&#160; delay(200); <span class="comment">// Give time for address change</span></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; 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#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, <a class="code" href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">epInfo</a>[ <a class="code" href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a> ].epAddr, 1);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</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="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"></span> onInit();</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">Xbox360Connected</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; bPollEnable = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// Successful configuration</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">/* Diagnostic messages */</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"></span>FailUnknownDevice:</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;Fail:</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 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</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> <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5"> 221</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="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> 0;</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;</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12"> 229</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="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span> (!bPollEnable)</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</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_o_l_d_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="l00234"></a><span class="lineno"> 234</span>&#160; readReport();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</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="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">return</span> 0;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keywordtype">void</span> XBOXUSB::readReport() {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</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="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">goto</span> Fail;</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;FailUnknownDevice:</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#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a>(VID, PID);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> rcode = <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;Fail:</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot;\r\nXbox 360 Init Failed, error code: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</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="l00226"></a><span class="lineno"> 226</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="l00227"></a><span class="lineno"> 227</span>&#160; bPollEnable = <span class="keyword">false</span>;</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;}</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"><a class="line" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12"> 231</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="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(!bPollEnable)</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</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="l00235"></a><span class="lineno"> 235</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_o_l_d_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="l00236"></a><span class="lineno"> 236</span>&#160; readReport();</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</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="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> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="keywordtype">void</span> XBOXUSB::readReport() {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(readBuf == NULL)</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</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; <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="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span>;</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;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</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="l00252"></a><span class="lineno"> 252</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="l00253"></a><span class="lineno"> 253</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="l00254"></a><span class="lineno"> 254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</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="l00260"></a><span class="lineno"> 260</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="l00261"></a><span class="lineno"> 261</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</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="l00263"></a><span class="lineno"> 263</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</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="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (readBuf == NULL)</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 0x80);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(PSTR(<span class="stringliteral">&quot; &quot;</span>), 0x80);</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; <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="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775"> 280</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="l00281"></a><span class="lineno"> 281</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="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState &gt;&gt; 8);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</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="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</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="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"><a class="line" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635"> 288</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="l00289"></a><span class="lineno"> 289</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="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span> (L2Clicked) {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (R2Clicked) {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a>] = (int16_t)(((uint16_t)readBuf[7] &lt;&lt; 8) | readBuf[6]);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a>] = (int16_t)(((uint16_t)readBuf[9] &lt;&lt; 8) | readBuf[8]);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[11] &lt;&lt; 8) | readBuf[10]);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[13] &lt;&lt; 8) | readBuf[12]);</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">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">//PrintHex&lt;uint32_t&gt;(ButtonState, 0x80);</span></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="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</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="l00262"></a><span class="lineno"> 262</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="l00263"></a><span class="lineno"> 263</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</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="l00265"></a><span class="lineno"> 265</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; OldButtonState = ButtonState;</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;}</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="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="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#ifdef PRINTREPORT</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(readBuf == NULL)</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</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="l00275"></a><span class="lineno"> 275</span>&#160; D_PrintHex&lt;uint8_t &gt; (readBuf[i], 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; }</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>}</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a195da02782b0f22a897406c733509802"> 282</a></span>&#160;uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a195da02782b0f22a897406c733509802">XBOXUSB::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> (uint8_t)(ButtonState &gt;&gt; 8);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>)</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> (uint8_t)ButtonState;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)(ButtonState &amp; ((uint32_t)pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[(uint8_t)b]) &lt;&lt; 16));</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;</div>
<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a997d372f061e434b441e91595160f0d5"> 290</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a997d372f061e434b441e91595160f0d5">XBOXUSB::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>) {</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(L2Clicked) {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>) {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(R2Clicked) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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; 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="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> click;</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"><a class="line" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff"> 308</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="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> hatValue[a];</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"> 312</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keywordtype">void</span> XBOXUSB::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</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="l00315"></a><span class="lineno"> 315</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_o_l_d_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="l00316"></a><span class="lineno"> 316</span>&#160;}</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"><a class="line" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e"> 318</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="l00319"></a><span class="lineno"> 319</span>&#160; writeBuf[0] = 0x01;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; writeBuf[1] = 0x03;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; writeBuf[2] = value;</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; XboxCommand(writeBuf, 3);</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="line" href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1"> 326</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="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"> 328</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="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="line" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6"> 331</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="l00332"></a><span class="lineno"> 332</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="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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; uint16_t button = pgm_read_word(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[(uint8_t)b]);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> click;</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;</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#ab427ce47a5f463afa407e2513d4e28a2"> 310</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_u_s_b.html#ab427ce47a5f463afa407e2513d4e28a2">XBOXUSB::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> hatValue[a];</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"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="keywordtype">void</span> XBOXUSB::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</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_o_l_d_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="l00318"></a><span class="lineno"> 318</span>&#160;}</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="line" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e"> 320</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="l00321"></a><span class="lineno"> 321</span>&#160; writeBuf[0] = 0x01;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; writeBuf[1] = 0x03;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; writeBuf[2] = value;</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; XboxCommand(writeBuf, 3);</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="line" href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c"> 328</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c">XBOXUSB::setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> led) {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span>(led == <a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a>)</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>(0);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(led != <a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a>) <span class="comment">// All LEDs can&#39;t be on a the same time</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</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#a0aa7965573ba74b8eecaa43f0543026e">XBOX_LEDS</a>[(uint8_t)led]) + 4);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e"> 335</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="l00336"></a><span class="lineno"> 336</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="l00335"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a402136e2c5ab3a006c0111903459eb35"> 335</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a402136e2c5ab3a006c0111903459eb35">XBOXUSB::setLedBlink</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> led) {</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</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#a0aa7965573ba74b8eecaa43f0543026e">XBOX_LEDS</a>[(uint8_t)led]));</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;</div>
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9"> 339</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="l00340"></a><span class="lineno"> 340</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; writeBuf[1] = 0x08;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; writeBuf[3] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; writeBuf[4] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; writeBuf[5] = 0x00;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; writeBuf[6] = 0x00;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; writeBuf[7] = 0x00;</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; XboxCommand(writeBuf, 8);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;}</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="keywordtype">void</span> XBOXUSB::onInit() {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (pFuncOnInit)</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></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; <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="l00357"></a><span class="lineno"> 357</span>&#160;}</div>
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a051a2683d76542660dc22b5cf3f9f95c"> 339</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a051a2683d76542660dc22b5cf3f9f95c">XBOXUSB::setLedMode</a>(<a class="code" href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a> ledMode) { <span class="comment">// This function is used to do some special LED stuff the controller supports</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"> 341</span>&#160;}</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"><a class="line" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9"> 343</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="l00344"></a><span class="lineno"> 344</span>&#160; writeBuf[0] = 0x00;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; writeBuf[1] = 0x08;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; writeBuf[2] = 0x00;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; writeBuf[3] = lValue; <span class="comment">// big weight</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; writeBuf[4] = rValue; <span class="comment">// small weight</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; writeBuf[5] = 0x00;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; writeBuf[6] = 0x00;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; writeBuf[7] = 0x00;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; XboxCommand(writeBuf, 8);</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;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keywordtype">void</span> XBOXUSB::onInit() {</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></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; <a class="code" href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a>);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_af2ec224ac142016119c418de89470f1f"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a></div><div class="ttdeci">#define XBOX_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00041">XBOXUSB.h:41</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a6842663964e470b86786f046e4bc30d9"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a6842663964e470b86786f046e4bc30d9">XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</a></div><div class="ttdeci">#define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00049">XBOXRECV.h:49</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00122">controllerEnums.h:122</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_abb8a1831f62ea139a2255c67bb24330f"><div class="ttname"><a href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a></div><div class="ttdeci">LEDModeEnum</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6adac6477842247cab1a8c02c65f431b44">LED1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00028">controllerEnums.h:28</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="_x_b_o_x_r_e_c_v_8h_html_a1a97ce2829a30b96ea6640d387d245a9"><div class="ttname"><a href="_x_b_o_x_r_e_c_v_8h.html#a1a97ce2829a30b96ea6640d387d245a9">XBOX_WIRELESS_RECEIVER_PID</a></div><div class="ttdeci">#define XBOX_WIRELESS_RECEIVER_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_r_e_c_v_8h_source.html#l00048">XBOXRECV.h:48</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a952183a3650619284979cc955fc7774c"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c">XBOXUSB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00328">XBOXUSB.cpp:328</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0adac6477842247cab1a8c02c65f431b44">LED1</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00029">controllerEnums.h:29</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a7426adef803da704df7593858389926e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e">XBOXUSB::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDMode lm)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00335">XBOXUSB.cpp:335</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00113">controllerEnums.h:113</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9c701658d4f63b5407cbcd5b78d8eb18"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">XBOXUSB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00193">XBOXUSB.h:193</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_aaa3e91675875fbf14a37369f9513874a"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a">XBOX_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define XBOX_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00047">XBOXUSB.h:47</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00040">controllerEnums.h:40</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00115">controllerEnums.h:115</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_aaa3e91675875fbf14a37369f9513874a"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a">XBOX_REPORT_BUFFER_SIZE</a></div><div class="ttdeci">#define XBOX_REPORT_BUFFER_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00048">XBOXUSB.h:48</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9d2ad06354787bc252058bb28015b56e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e">XBOXUSB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00038">XBOXUSB.cpp:38</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae18ff481e9dd91658e5e45e7958e7775"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775">XBOXUSB::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00280">XBOXUSB.cpp:280</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ab427ce47a5f463afa407e2513d4e28a2"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ab427ce47a5f463afa407e2513d4e28a2">XBOXUSB::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00310">XBOXUSB.cpp:310</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a402136e2c5ab3a006c0111903459eb35"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a402136e2c5ab3a006c0111903459eb35">XBOXUSB::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LEDEnum l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00335">XBOXUSB.cpp:335</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a7e55826e75b9b88578c8b0edaaf523d7"><div class="ttname"><a href="xbox_enums_8h.html#a7e55826e75b9b88578c8b0edaaf523d7">XBOXBUTTONS</a></div><div class="ttdeci">const uint16_t XBOXBUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00040">xboxEnums.h:40</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a867f3bf7a14d4647290f1ac7f76b23ee"><div class="ttname"><a href="xbox_enums_8h.html#a867f3bf7a14d4647290f1ac7f76b23ee">XBOXLEDS</a></div><div class="ttdeci">const uint8_t XBOXLEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00032">xboxEnums.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ab85b8ce772b122f1b9df489c7e045635"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635">XBOXUSB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00288">XBOXUSB.cpp:288</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00025">PS3USB.h:25</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a629d7b403cea5f826352f3aefb9a6d6a">R2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00082">controllerEnums.h:82</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="message_8h_html_a0ce3a725ee65614d7f95cda10e4d2e91"><div class="ttname"><a href="message_8h.html#a0ce3a725ee65614d7f95cda10e4d2e91">NotifyFailUnknownDevice</a></div><div class="ttdeci">#define NotifyFailUnknownDevice(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00054">message.h:54</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8e7834e5604c4fb588cceab9258d0568"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a></div><div class="ttdeci">#define XBOX_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00036">XBOXOLD.h:36</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a7fcef8741de99d56f3a4d7fad9f954ff"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff">XBOXUSB::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00308">XBOXUSB.cpp:308</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a4fd9ad9bf7a7d5767940c2ec224ef5e8"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a4fd9ad9bf7a7d5767940c2ec224ef5e8">XBOX_INPUT_PIPE</a></div><div class="ttdeci">#define XBOX_INPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00032">XBOXOLD.h:32</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00124">controllerEnums.h:124</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a5e9c00af9f4b978c53819791b0a0eb65"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">XBOXUSB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00195">XBOXUSB.h:195</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a195da02782b0f22a897406c733509802"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a195da02782b0f22a897406c733509802">XBOXUSB::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00282">XBOXUSB.cpp:282</a></div></div>
<div class="ttc" id="_p_s3_u_s_b_8h_html_ad4d26e1c566064f2259faf65f0858b6e"><div class="ttname"><a href="_p_s3_u_s_b_8h.html#ad4d26e1c566064f2259faf65f0858b6e">EP_INTERRUPT</a></div><div class="ttdeci">#define EP_INTERRUPT</div><div class="ttdef"><b>Definition:</b> <a href="_p_s3_u_s_b_8h_source.html#l00028">PS3USB.h:28</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a10c2a7a8da78e76d7020c2c347f0a687"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a10c2a7a8da78e76d7020c2c347f0a687">XBOX_WIRELESS_PID</a></div><div class="ttdeci">#define XBOX_WIRELESS_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00042">XBOXUSB.h:42</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00111">controllerEnums.h:111</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a1c779ae5483a2f73426650242a37d868"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">XBOXUSB::Xbox360Connected</a></div><div class="ttdeci">bool Xbox360Connected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00185">XBOXUSB.h:185</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html">XBOXUSB.h</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0a0adffb24dae0c41be5b803f4d444f066">L2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00081">controllerEnums.h:81</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00082">controllerEnums.h:82</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_aee05d40a014750b24a7e9967f6f389f4"><div class="ttname"><a href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4">HID_REQUEST_SET_REPORT</a></div><div class="ttdeci">#define HID_REQUEST_SET_REPORT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00039">BTD.h:39</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_ab029b2c21fb0c240022cc50f465d4580"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a></div><div class="ttdeci">#define JOYTECH_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00038">XBOXOLD.h:38</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0ab1d5eac4b1dca480c8056eaea7663b7a"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0ab1d5eac4b1dca480c8056eaea7663b7a">ALL</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00041">controllerEnums.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="xbox_enums_8h_html_a57effb96f46e458675a2653d4c543ca2"><div class="ttname"><a href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a></div><div class="ttdeci">LEDMode</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="struct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00040">address.h:40</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae70ae50ed8188a2bf8c25d0ee17f54d9"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00339">XBOXUSB.cpp:339</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae70ae50ed8188a2bf8c25d0ee17f54d9"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00343">XBOXUSB.cpp:343</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a4b676a33152112e6edfb14be125a78d2"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2">XBOXUSB::XBOXUSB</a></div><div class="ttdeci">XBOXUSB(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00023">XBOXUSB.cpp:23</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a2f5523a1aaa6718e1d11c6bc5b29a575"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a></div><div class="ttdeci">#define MADCATZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00037">XBOXOLD.h:37</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0aac132f2982b98bcaa3445e535a03ff75">OFF</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00028">controllerEnums.h:28</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a92d2d844a70224a10c100c0a877aacfe"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a92d2d844a70224a10c100c0a877aacfe">XBOX_OUTPUT_PIPE</a></div><div class="ttdeci">#define XBOX_OUTPUT_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00033">XBOXOLD.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_ae603aa3fd2321045aabc49c36a9ae7fa"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a></div><div class="ttdeci">#define GAMESTOP_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00039">XBOXUSB.h:39</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_acc52982e6105d029d1e0980367dc10f6"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6">XBOXUSB::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LED l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00331">XBOXUSB.cpp:331</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a0aa7965573ba74b8eecaa43f0543026e"><div class="ttname"><a href="xbox_enums_8h.html#a0aa7965573ba74b8eecaa43f0543026e">XBOX_LEDS</a></div><div class="ttdeci">const uint8_t XBOX_LEDS[]</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00032">xboxEnums.h:32</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a997d372f061e434b441e91595160f0d5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a997d372f061e434b441e91595160f0d5">XBOXUSB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00290">XBOXUSB.cpp:290</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00049">XBOXOLD.h:49</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2348a35d4302f0a76bbeb319e84349a1"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1">XBOXUSB::setLedOn</a></div><div class="ttdeci">void setLedOn(LED l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00326">XBOXUSB.cpp:326</a></div></div>
<div class="ttc" id="max3421e_8h_html_aca6a8aa4f0aebbe07c5e175572a92ef7"><div class="ttname"><a href="max3421e_8h.html#aca6a8aa4f0aebbe07c5e175572a92ef7">bmRCVTOG0</a></div><div class="ttdeci">#define bmRCVTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00185">max3421e.h:185</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a5bd4ea095da29635414952894bd527f5"><div class="ttname"><a href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5">bmREQ_HID_OUT</a></div><div class="ttdeci">#define bmREQ_HID_OUT</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00038">BTD.h:38</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2cb9786f22e69ec3db26d9a55f95e22e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00318">XBOXUSB.cpp:318</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2cb9786f22e69ec3db26d9a55f95e22e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00320">XBOXUSB.cpp:320</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="max3421e_8h_html_a4834ae7378471b63b9a1985c6294006f"><div class="ttname"><a href="max3421e_8h.html#a4834ae7378471b63b9a1985c6294006f">bmSNDTOG0</a></div><div class="ttdeci">#define bmSNDTOG0</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00187">max3421e.h:187</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a051a2683d76542660dc22b5cf3f9f95c"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a051a2683d76542660dc22b5cf3f9f95c">XBOXUSB::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDModeEnum lm)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00339">XBOXUSB.cpp:339</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a7f049407d82f21dfa4a706c9006877ee"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a7f049407d82f21dfa4a706c9006877ee">MADCATZ_WIRED_PID</a></div><div class="ttdeci">#define MADCATZ_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00045">XBOXUSB.h:45</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="_x_b_o_x_o_l_d_8h_html_a8f4ee68cc0f05690f5f26104c7d9e490"><div class="ttname"><a href="_x_b_o_x_o_l_d_8h.html#a8f4ee68cc0f05690f5f26104c7d9e490">XBOX_CONTROL_PIPE</a></div><div class="ttdeci">#define XBOX_CONTROL_PIPE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_l_d_8h_source.html#l00031">XBOXOLD.h:31</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9a296b98b40f5a36d46297d98ef0f9b5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00221">XBOXUSB.cpp:221</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093af3f3925efa9762c4e9e71ac7da7a94a3">LeftHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00120">controllerEnums.h:120</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a383cb8895dd296b7f69ce845ed16b0ca">LeftHatX</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00118">controllerEnums.h:118</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00083">controllerEnums.h:83</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9a296b98b40f5a36d46297d98ef0f9b5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00223">XBOXUSB.cpp:223</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a35901eab017bd1df5d2361634309adbd"><div class="ttname"><a href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a></div><div class="ttdeci">const uint16_t XBOX_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00041">xboxEnums.h:41</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00117">controllerEnums.h:117</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2f4684fe0785e50de434d95f4336fa12"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00229">XBOXUSB.cpp:229</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2f4684fe0785e50de434d95f4336fa12"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00231">XBOXUSB.cpp:231</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_abef4a852d877d8136f198431ce54550f"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">XBOXUSB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00197">XBOXUSB.h:197</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a45127640fc1cf21dac1a447e76eafeb3"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a></div><div class="ttdeci">#define GAMESTOP_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00045">XBOXUSB.h:45</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a45127640fc1cf21dac1a447e76eafeb3"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a></div><div class="ttdeci">#define GAMESTOP_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00046">XBOXUSB.h:46</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -144,6 +144,8 @@ Macros</h2></td></tr>
<tr class="separator:a1a97ce2829a30b96ea6640d387d245a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6842663964e470b86786f046e4bc30d9"><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_8h.html#a6842663964e470b86786f046e4bc30d9">XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID</a>&#160;&#160;&#160;0x0291</td></tr>
<tr class="separator:a6842663964e470b86786f046e4bc30d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f049407d82f21dfa4a706c9006877ee"><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_8h.html#a7f049407d82f21dfa4a706c9006877ee">MADCATZ_WIRED_PID</a>&#160;&#160;&#160;0xF016</td></tr>
<tr class="separator:a7f049407d82f21dfa4a706c9006877ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45127640fc1cf21dac1a447e76eafeb3"><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_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a>&#160;&#160;&#160;0x0401</td></tr>
<tr class="separator:a45127640fc1cf21dac1a447e76eafeb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa3e91675875fbf14a37369f9513874a"><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_8h.html#aaa3e91675875fbf14a37369f9513874a">XBOX_REPORT_BUFFER_SIZE</a>&#160;&#160;&#160;14</td></tr>
@ -336,6 +338,20 @@ Macros</h2></td></tr>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00044">44</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7f049407d82f21dfa4a706c9006877ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MADCATZ_WIRED_PID&#160;&#160;&#160;0xF016</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00045">45</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
<a class="anchor" id="a45127640fc1cf21dac1a447e76eafeb3"></a>
@ -348,7 +364,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00045">45</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00046">46</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
@ -362,7 +378,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00047">47</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00048">48</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
@ -376,7 +392,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00050">50</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00051">51</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
@ -390,7 +406,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00051">51</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00052">52</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
@ -404,7 +420,7 @@ Macros</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00053">53</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
<p>Definition at line <a class="el" href="_x_b_o_x_u_s_b_8h_source.html#l00054">54</a> of file <a class="el" href="_x_b_o_x_u_s_b_8h_source.html">XBOXUSB.h</a>.</p>
</div>
</div>
@ -413,7 +429,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -133,38 +133,39 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a10c2a7a8da78e76d7020c2c347f0a687"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XBOX_WIRELESS_PID 0x028F // Wireless controller only support charging</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a1a97ce2829a30b96ea6640d387d245a9"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XBOX_WIRELESS_RECEIVER_PID 0x0719 // Microsoft Wireless Gaming Receiver</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a6842663964e470b86786f046e4bc30d9"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID 0x0291 // Third party Wireless Gaming Receiver</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GAMESTOP_WIRED_PID 0x0401 // Gamestop wired controller</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a"> 47</a></span>&#160;<span class="preprocessor">#define XBOX_REPORT_BUFFER_SIZE 14 // Size of the input report buffer</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="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a5bd4ea095da29635414952894bd527f5"> 50</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#af35f872fc33e690571eb99de648e8e96"> 53</a></span>&#160;<span class="preprocessor">#define XBOX_MAX_ENDPOINTS 3</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html"> 56</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_x_b_o_x_u_s_b.html">XBOXUSB</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2">XBOXUSB</a>(<a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">Poll</a>();</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4"> 88</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4">GetAddress</a>() {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; };</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272"> 96</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272">isReady</a>() {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> ((vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a>) &amp;&amp; (pid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a> || pid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a>));</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a> b);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; int16_t <a class="code" href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a> a);</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a7f049407d82f21dfa4a706c9006877ee"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MADCATZ_WIRED_PID 0xF016 // Mad Catz wired controller</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3"> 46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GAMESTOP_WIRED_PID 0x0401 // Gamestop wired controller</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"><a class="line" href="_x_b_o_x_u_s_b_8h.html#aaa3e91675875fbf14a37369f9513874a"> 48</a></span>&#160;<span class="preprocessor">#define XBOX_REPORT_BUFFER_SIZE 14 // Size of the input report buffer</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#a5bd4ea095da29635414952894bd527f5"> 51</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_x_b_o_x_u_s_b_8h.html#af35f872fc33e690571eb99de648e8e96"> 54</a></span>&#160;<span class="preprocessor">#define XBOX_MAX_ENDPOINTS 3</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_x_b_o_x_u_s_b.html">XBOXUSB</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a> {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2">XBOXUSB</a>(<a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">pUsb</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">Release</a>();</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">Poll</a>();</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4"> 89</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4">GetAddress</a>() {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">bAddress</a>;</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;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272"> 97</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272">isReady</a>() {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> bPollEnable;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b"> 107</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">boolean</span> <a class="code" href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> ((vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a> || vid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a>) &amp;&amp; (pid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a> || pid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a7f049407d82f21dfa4a706c9006877ee">MADCATZ_WIRED_PID</a> || pid == <a class="code" href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a>));</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint8_t <a class="code" href="class_x_b_o_x_u_s_b.html#a195da02782b0f22a897406c733509802">getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a997d372f061e434b441e91595160f0d5">getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; int16_t <a class="code" href="class_x_b_o_x_u_s_b.html#ab427ce47a5f463afa407e2513d4e28a2">getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a6200dc185ecb6e0d3ffdb2a9ecf49c40"> 136</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a6200dc185ecb6e0d3ffdb2a9ecf49c40">setAllOff</a>() {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">setRumbleOn</a>(0, 0);</div>
@ -180,9 +181,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a155637a4ef946f19c7ee40c0fc1c6b98"> 160</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a155637a4ef946f19c7ee40c0fc1c6b98">setLedOff</a>() {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">setLedRaw</a>(0);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; };</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</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#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6">setLedBlink</a>(<a class="code" href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a> l);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e">setLedMode</a>(<a class="code" href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a> lm);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c">setLedOn</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> l);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a402136e2c5ab3a006c0111903459eb35">setLedBlink</a>(<a class="code" href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a> l);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a051a2683d76542660dc22b5cf3f9f95c">setLedMode</a>(<a class="code" href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a> lm);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_x_b_o_x_u_s_b.html#a887b65866f96b5b1e1413ba1e4f19941"> 183</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_u_s_b.html#a887b65866f96b5b1e1413ba1e4f19941">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; pFuncOnInit = funcOnInit;</div>
@ -221,52 +222,53 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;};</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_af2ec224ac142016119c418de89470f1f"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#af2ec224ac142016119c418de89470f1f">XBOX_WIRED_PID</a></div><div class="ttdeci">#define XBOX_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00041">XBOXUSB.h:41</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_abb8a1831f62ea139a2255c67bb24330f"><div class="ttname"><a href="xbox_enums_8h.html#abb8a1831f62ea139a2255c67bb24330f">LEDModeEnum</a></div><div class="ttdeci">LEDModeEnum</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a952183a3650619284979cc955fc7774c"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a952183a3650619284979cc955fc7774c">XBOXUSB::setLedOn</a></div><div class="ttdeci">void setLedOn(LEDEnum l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00328">XBOXUSB.cpp:328</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a2f5523a1aaa6718e1d11c6bc5b29a575"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a2f5523a1aaa6718e1d11c6bc5b29a575">MADCATZ_VID</a></div><div class="ttdeci">#define MADCATZ_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00037">XBOXUSB.h:37</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00053">XBOXUSB.h:53</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_af35f872fc33e690571eb99de648e8e96"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#af35f872fc33e690571eb99de648e8e96">XBOX_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00054">XBOXUSB.h:54</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_ab029b2c21fb0c240022cc50f465d4580"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#ab029b2c21fb0c240022cc50f465d4580">JOYTECH_VID</a></div><div class="ttdeci">#define JOYTECH_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00038">XBOXUSB.h:38</a></div></div>
<div class="ttc" id="xbox_enums_8h_html"><div class="ttname"><a href="xbox_enums_8h.html">xboxEnums.h</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a7426adef803da704df7593858389926e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a7426adef803da704df7593858389926e">XBOXUSB::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDMode lm)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00335">XBOXUSB.cpp:335</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a34dad8f0a0927471137c403216597093"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a></div><div class="ttdeci">AnalogHatEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00116">controllerEnums.h:116</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9c701658d4f63b5407cbcd5b78d8eb18"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9c701658d4f63b5407cbcd5b78d8eb18">XBOXUSB::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00193">XBOXUSB.h:193</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a155637a4ef946f19c7ee40c0fc1c6b98"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a155637a4ef946f19c7ee40c0fc1c6b98">XBOXUSB::setLedOff</a></div><div class="ttdeci">void setLedOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00160">XBOXUSB.h:160</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9d2ad06354787bc252058bb28015b56e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e">XBOXUSB::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00038">XBOXUSB.cpp:38</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae18ff481e9dd91658e5e45e7958e7775"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae18ff481e9dd91658e5e45e7958e7775">XBOXUSB::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00280">XBOXUSB.cpp:280</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ab427ce47a5f463afa407e2513d4e28a2"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ab427ce47a5f463afa407e2513d4e28a2">XBOXUSB::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00310">XBOXUSB.cpp:310</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ac2507bfe85896b7fcc772894a7a9f272"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272">XBOXUSB::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00096">XBOXUSB.h:96</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aadcb6002d2b42fdfe01490f730ab00a6"><div class="ttname"><a href="controller_enums_8h.html#aadcb6002d2b42fdfe01490f730ab00a6">LED</a></div><div class="ttdeci">LED</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ab85b8ce772b122f1b9df489c7e045635"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ab85b8ce772b122f1b9df489c7e045635">XBOXUSB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(Button b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00288">XBOXUSB.cpp:288</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a402136e2c5ab3a006c0111903459eb35"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a402136e2c5ab3a006c0111903459eb35">XBOXUSB::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LEDEnum l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00335">XBOXUSB.cpp:335</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ac2507bfe85896b7fcc772894a7a9f272"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ac2507bfe85896b7fcc772894a7a9f272">XBOXUSB::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00097">XBOXUSB.h:97</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a70df64e026046bc352983127b7ae2cf0"><div class="ttname"><a href="controller_enums_8h.html#a70df64e026046bc352983127b7ae2cf0">LEDEnum</a></div><div class="ttdeci">LEDEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00027">controllerEnums.h:27</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a887b65866f96b5b1e1413ba1e4f19941"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a887b65866f96b5b1e1413ba1e4f19941">XBOXUSB::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00183">XBOXUSB.h:183</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a7fcef8741de99d56f3a4d7fad9f954ff"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a7fcef8741de99d56f3a4d7fad9f954ff">XBOXUSB::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHat a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00308">XBOXUSB.cpp:308</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a5e9c00af9f4b978c53819791b0a0eb65"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a5e9c00af9f4b978c53819791b0a0eb65">XBOXUSB::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00195">XBOXUSB.h:195</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a195da02782b0f22a897406c733509802"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a195da02782b0f22a897406c733509802">XBOXUSB::getButtonPress</a></div><div class="ttdeci">uint8_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00282">XBOXUSB.cpp:282</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a94f7389d205c78830a5441370d7870fd"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a></div><div class="ttdeci">ButtonEnum</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00045">controllerEnums.h:45</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a1c779ae5483a2f73426650242a37d868"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a1c779ae5483a2f73426650242a37d868">XBOXUSB::Xbox360Connected</a></div><div class="ttdeci">bool Xbox360Connected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00185">XBOXUSB.h:185</a></div></div>
<div class="ttc" id="xbox_enums_8h_html_a57effb96f46e458675a2653d4c543ca2"><div class="ttname"><a href="xbox_enums_8h.html#a57effb96f46e458675a2653d4c543ca2">LEDMode</a></div><div class="ttdeci">LEDMode</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00024">xboxEnums.h:24</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a8e7834e5604c4fb588cceab9258d0568"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a8e7834e5604c4fb588cceab9258d0568">XBOX_VID</a></div><div class="ttdeci">#define XBOX_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00036">XBOXUSB.h:36</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae70ae50ed8188a2bf8c25d0ee17f54d9"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00339">XBOXUSB.cpp:339</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_ae70ae50ed8188a2bf8c25d0ee17f54d9"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#ae70ae50ed8188a2bf8c25d0ee17f54d9">XBOXUSB::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t lValue, uint8_t rValue)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00343">XBOXUSB.cpp:343</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a4b676a33152112e6edfb14be125a78d2"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a4b676a33152112e6edfb14be125a78d2">XBOXUSB::XBOXUSB</a></div><div class="ttdeci">XBOXUSB(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00023">XBOXUSB.cpp:23</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a42c870e64582980634423248d64500b4"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4">XBOXUSB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00088">XBOXUSB.h:88</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a42c870e64582980634423248d64500b4"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a42c870e64582980634423248d64500b4">XBOXUSB::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00089">XBOXUSB.h:89</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_ae603aa3fd2321045aabc49c36a9ae7fa"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#ae603aa3fd2321045aabc49c36a9ae7fa">GAMESTOP_VID</a></div><div class="ttdeci">#define GAMESTOP_VID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00039">XBOXUSB.h:39</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_acc52982e6105d029d1e0980367dc10f6"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#acc52982e6105d029d1e0980367dc10f6">XBOXUSB::setLedBlink</a></div><div class="ttdeci">void setLedBlink(LED l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00331">XBOXUSB.cpp:331</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a997d372f061e434b441e91595160f0d5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a997d372f061e434b441e91595160f0d5">XBOXUSB::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00290">XBOXUSB.cpp:290</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_abcb805b13bfd36145e252b0633bbcfc0"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#abcb805b13bfd36145e252b0633bbcfc0">EP_MAXPKTSIZE</a></div><div class="ttdeci">#define EP_MAXPKTSIZE</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00025">XBOXUSB.h:25</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_aa25ae7e9161bf1f4cc03a007738a292b"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b">XBOXUSB::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00106">XBOXUSB.h:106</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_aa25ae7e9161bf1f4cc03a007738a292b"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#aa25ae7e9161bf1f4cc03a007738a292b">XBOXUSB::VIDPIDOK</a></div><div class="ttdeci">virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00107">XBOXUSB.h:107</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a5d9ac92da5086409ad864484bdf95871"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a5d9ac92da5086409ad864484bdf95871">XBOXUSB::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00142">XBOXUSB.h:142</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2348a35d4302f0a76bbeb319e84349a1"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2348a35d4302f0a76bbeb319e84349a1">XBOXUSB::setLedOn</a></div><div class="ttdeci">void setLedOn(LED l)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00326">XBOXUSB.cpp:326</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2cb9786f22e69ec3db26d9a55f95e22e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00318">XBOXUSB.cpp:318</a></div></div>
<div class="ttc" id="controller_enums_8h_html_a03bfec859eac87be20f8952c1eb89de0"><div class="ttname"><a href="controller_enums_8h.html#a03bfec859eac87be20f8952c1eb89de0">Button</a></div><div class="ttdeci">Button</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00044">controllerEnums.h:44</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html">XBOXUSB</a></div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00056">XBOXUSB.h:56</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2cb9786f22e69ec3db26d9a55f95e22e"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2cb9786f22e69ec3db26d9a55f95e22e">XBOXUSB::setLedRaw</a></div><div class="ttdeci">void setLedRaw(uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00320">XBOXUSB.cpp:320</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a051a2683d76542660dc22b5cf3f9f95c"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a051a2683d76542660dc22b5cf3f9f95c">XBOXUSB::setLedMode</a></div><div class="ttdeci">void setLedMode(LEDModeEnum lm)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00339">XBOXUSB.cpp:339</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a7f049407d82f21dfa4a706c9006877ee"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a7f049407d82f21dfa4a706c9006877ee">MADCATZ_WIRED_PID</a></div><div class="ttdeci">#define MADCATZ_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00045">XBOXUSB.h:45</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html">XBOXUSB</a></div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00057">XBOXUSB.h:57</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a6200dc185ecb6e0d3ffdb2a9ecf49c40"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a6200dc185ecb6e0d3ffdb2a9ecf49c40">XBOXUSB::setAllOff</a></div><div class="ttdeci">void setAllOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00136">XBOXUSB.h:136</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9a296b98b40f5a36d46297d98ef0f9b5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00221">XBOXUSB.cpp:221</a></div></div>
<div class="ttc" id="controller_enums_8h_html_aaaabdefc068fd57ec2bef2b62ea4ba92"><div class="ttname"><a href="controller_enums_8h.html#aaaabdefc068fd57ec2bef2b62ea4ba92">AnalogHat</a></div><div class="ttdeci">AnalogHat</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00109">controllerEnums.h:109</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2f4684fe0785e50de434d95f4336fa12"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00229">XBOXUSB.cpp:229</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a9a296b98b40f5a36d46297d98ef0f9b5"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a9a296b98b40f5a36d46297d98ef0f9b5">XBOXUSB::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00223">XBOXUSB.cpp:223</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_a2f4684fe0785e50de434d95f4336fa12"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#a2f4684fe0785e50de434d95f4336fa12">XBOXUSB::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8cpp_source.html#l00231">XBOXUSB.cpp:231</a></div></div>
<div class="ttc" id="class_x_b_o_x_u_s_b_html_abef4a852d877d8136f198431ce54550f"><div class="ttname"><a href="class_x_b_o_x_u_s_b.html#abef4a852d877d8136f198431ce54550f">XBOXUSB::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00197">XBOXUSB.h:197</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a45127640fc1cf21dac1a447e76eafeb3"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a></div><div class="ttdeci">#define GAMESTOP_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00045">XBOXUSB.h:45</a></div></div>
<div class="ttc" id="_x_b_o_x_u_s_b_8h_html_a45127640fc1cf21dac1a447e76eafeb3"><div class="ttname"><a href="_x_b_o_x_u_s_b_8h.html#a45127640fc1cf21dac1a447e76eafeb3">GAMESTOP_WIRED_PID</a></div><div class="ttdeci">#define GAMESTOP_WIRED_PID</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_u_s_b_8h_source.html#l00046">XBOXUSB.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -282,7 +282,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622"> 62</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a> : 3; <span class="comment">// device address/port number</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#abd628d37834249af6518f320f3f19065"> 63</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#abd628d37834249af6518f320f3f19065">bmParent</a> : 3; <span class="comment">// parent hub address</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e"> 64</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> : 1; <span class="comment">// hub flag</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef"> 65</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef">bmReserved</a> : 1; <span class="comment">// reserved, must be zerro</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef"> 65</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef">bmReserved</a> : 1; <span class="comment">// reserved, must be zero</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } __attribute__((packed));</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f"> 67</a></span>&#160; uint8_t <a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div>
@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="line" 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="line" 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>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f"> 77</a></span>&#160; uint8_t <a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a>; <span class="comment">// address</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99"> 77</a></span>&#160; <a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> <a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a"> 78</a></span>&#160; uint8_t <a class="code" href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a">epcount</a>; <span class="comment">// number of endpoints</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a"> 79</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a>; <span class="comment">// indicates if a device is the low speed one</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// uint8_t devclass; // device class</span></div>
@ -195,187 +195,196 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Initializes address pool entry</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> InitEntry(uint8_t index) {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = 0;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 0;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a">epcount</a> = 1;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = 0;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = &amp;dev0ep;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; };</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Returns thePool index for a given address</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; uint8_t FindAddressIndex(uint8_t address = 0) {</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(thePool[i].address == address)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Returns thePool child index for a given parent</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Returns thePool index for a given address</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; uint8_t FindAddressIndex(uint8_t address = 0) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(thePool[i].address.devAddress == address)</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; };</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint8_t FindChildIndex(<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> addr, uint8_t start = 1) {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">for</span>(uint8_t i = (start &lt; 1 || start &gt;= MAX_DEVICES_ALLOWED) ? 1 : start; i &lt; MAX_DEVICES_ALLOWED; i++) {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(((<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a>*) &amp; thePool[i].address)-&gt;bmParent == addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a>)</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> 0;</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="comment">// Frees address entry specified by index parameter</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> FreeAddressByIndex(uint8_t index) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Zerro field is reserved and should not be affected</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(index == 0)</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// If a hub was switched off all port addresses should be freed</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(((<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a>*) &amp; thePool[index].address)-&gt;bmHub == 1) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; (i = FindChildIndex(*((<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a>*) &amp; thePool[index].address), i));)</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; FreeAddressByIndex(i);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// If the hub had the last allocated address, hubCounter should be decremented</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(hubCounter == ((<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a>*) &amp; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a>)-&gt;bmAddress)</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; hubCounter--;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; InitEntry(index);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Initializes the whole address pool at once</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="keywordtype">void</span> InitAllAddresses() {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++)</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; InitEntry(i);</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; hubCounter = 0;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; };</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Returns thePool child index for a given parent</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint8_t FindChildIndex(<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> addr, uint8_t start = 1) {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span>(uint8_t i = (start &lt; 1 || start &gt;= MAX_DEVICES_ALLOWED) ? 1 : start; i &lt; MAX_DEVICES_ALLOWED; i++) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(thePool[i].address.bmParent == addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a>)</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> i;</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="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Frees address entry specified by index parameter</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> FreeAddressByIndex(uint8_t index) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Zero field is reserved and should not be affected</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(index == 0)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> uda = thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// If a hub was switched off all port addresses should be freed</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(uda.<a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> == 1) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; (i = FindChildIndex(uda, i));)</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; FreeAddressByIndex(i);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// If the hub had the last allocated address, hubCounter should be decremented</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(hubCounter == uda.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a>)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; hubCounter--;</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; InitEntry(index);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// Initializes the whole address pool at once</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> InitAllAddresses() {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++)</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; InitEntry(i);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa"> 159</a></span>&#160; <a class="code" href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa">AddressPoolImpl</a>() : hubCounter(0) {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// Zero address is reserved</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; InitEntry(0);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; thePool[0].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = 0;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; thePool[0].<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = &amp;dev0ep;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = 8;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0; <span class="comment">//set DATA0/1 toggles to 0</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</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; InitAllAddresses();</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">// Returns a pointer to a specified address entry</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="line" href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba"> 174</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_usb_device.html">UsbDevice</a>* <a class="code" href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">GetUsbDevicePtr</a>(uint8_t addr) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(!addr)</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> thePool;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; hubCounter = 0;</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;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa"> 164</a></span>&#160; <a class="code" href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa">AddressPoolImpl</a>() : hubCounter(0) {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// Zero address is reserved</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; InitEntry(0);</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; thePool[0].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 0;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; thePool[0].<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = &amp;dev0ep;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = 8;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0; <span class="comment">//set DATA0/1 toggles to 0</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; dev0ep.<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; InitAllAddresses();</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; uint8_t index = FindAddressIndex(addr);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// Returns a pointer to a specified address entry</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span>(!index) ? NULL : thePool + index;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; };</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Performs an operation specified by pfunc for each addressed device</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e"> 185</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(!pfunc)</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba"> 180</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_usb_device.html">UsbDevice</a>* <a class="code" href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">GetUsbDevicePtr</a>(uint8_t addr) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(!addr)</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> thePool;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t index = FindAddressIndex(addr);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> (!index) ? NULL : thePool + index;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; };</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++)</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span>(thePool[i].address)</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; pfunc(thePool + i);</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; <span class="comment">// Allocates new address</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Performs an operation specified by pfunc for each addressed device</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e"> 191</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">ForEachUsbDevice</a>(<a class="code" href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a> pfunc) {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(!pfunc)</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</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="line" 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"> 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>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 1; i &lt; MAX_DEVICES_ALLOWED; i++)</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(thePool[i].address.devAddress)</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; pfunc(thePool + i);</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"> 200</span>&#160; <span class="comment">// Allocates new address</span></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; <span class="keywordflow">if</span>(is_hub &amp;&amp; hubCounter == 7)</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// finds first empty address entry starting from one</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; uint8_t index = FindAddressIndex(0);</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="keywordflow">if</span>(!index) <span class="comment">// if empty entry is not found</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87"> 202</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="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">/* if (parent != 0 &amp;&amp; port == 0)</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> USB_HOST_SERIAL.println(&quot;PRT:0&quot;); */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> _parent;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; _parent.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = parent;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(_parent.<a class="code" href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef">bmReserved</a> || port &gt; 7)</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">//if(parent &gt; 127 || port &gt; 7)</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(parent == 0) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(is_hub) {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = 0x41;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; hubCounter++;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = 1;</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"> 218</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="l00219"></a><span class="lineno"> 219</span>&#160; }</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; <a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> addr;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 0; <span class="comment">// Ensure all bits are zero</span></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; addr.<a class="code" href="struct_usb_device_address.html#abd628d37834249af6518f320f3f19065">bmParent</a> = ((<a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a>*) &amp; parent)-&gt;bmAddress;</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="keywordflow">if</span>(is_hub) {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> = 1;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a> = ++hubCounter;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> = 0;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a> = port;</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; thePool[index].<a class="code" href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">address</a> = *((uint8_t*) &amp; addr);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;Addr:&quot;);</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmHub, HEX);</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmParent, HEX);</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> USB_HOST_SERIAL.println(addr.bmAddress, HEX);</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</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="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">// Empties pool entry</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"><a class="line" href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5"> 246</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">FreeAddress</a>(uint8_t addr) {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// if the root hub is disconnected all the addresses should be initialized</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(addr == 0x41) {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; InitAllAddresses();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; uint8_t index = FindAddressIndex(addr);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; FreeAddressByIndex(index);</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="comment">// Returns number of hubs attached</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// It can be rather helpfull to find out if there are hubs attached than getting the exact number of hubs.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">//uint8_t GetNumHubs()</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// return hubCounter;</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; <span class="comment">//uint8_t GetNumDevices()</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// uint8_t counter = 0;</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// for (uint8_t i=1; i&lt;MAX_DEVICES_ALLOWED; i++)</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// if (thePool[i].address != 0);</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// counter ++;</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"> 269</span>&#160; <span class="comment">// return counter;</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">//};</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;};</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="preprocessor">#endif // __ADDRESS_H__</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(is_hub &amp;&amp; hubCounter == 7)</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> 0;</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="comment">// finds first empty address entry starting from one</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; uint8_t index = FindAddressIndex(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; <span class="keywordflow">if</span>(!index) <span class="comment">// if empty entry is not found</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(_parent.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> == 0) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(is_hub) {</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 0x41;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; hubCounter++;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 1;</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; <span class="keywordflow">return</span> thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a>;</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; <a class="code" href="struct_usb_device_address.html">UsbDeviceAddress</a> addr;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a> = 0; <span class="comment">// Ensure all bits are zero</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#abd628d37834249af6518f320f3f19065">bmParent</a> = _parent.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(is_hub) {</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> = 1;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a> = ++hubCounter;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">bmHub</a> = 0;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; addr.<a class="code" href="struct_usb_device_address.html#ae12b0ac1b76a34d0a5080cc62f41c622">bmAddress</a> = port;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a> = addr;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;Addr:&quot;);</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmHub, HEX);</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(addr.bmParent, HEX);</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> USB_HOST_SERIAL.print(&quot;.&quot;);</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> USB_HOST_SERIAL.println(addr.bmAddress, HEX);</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> thePool[index].<a class="code" href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">address</a>.<a class="code" href="struct_usb_device_address.html#a79ed442d6a357907ddb4d1697bd6af5f">devAddress</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; };</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// Empties pool entry</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5"> 254</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">FreeAddress</a>(uint8_t addr) {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// if the root hub is disconnected all the addresses should be initialized</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span>(addr == 0x41) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; InitAllAddresses();</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span>;</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; uint8_t index = FindAddressIndex(addr);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; FreeAddressByIndex(index);</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; <span class="comment">// Returns number of hubs attached</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// It can be rather helpfull to find out if there are hubs attached than getting the exact number of hubs.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">//uint8_t GetNumHubs()</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// return hubCounter;</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">//};</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">//uint8_t GetNumDevices()</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// uint8_t counter = 0;</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">// for (uint8_t i=1; i&lt;MAX_DEVICES_ALLOWED; i++)</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// if (thePool[i].address != 0);</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// counter ++;</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="comment">// return counter;</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">//};</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;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor">#endif // __ADDRESS_H__</span></div>
<div class="ttc" id="struct_ep_info_html_a9238dd40c096baedf041c98b19386a14"><div class="ttname"><a href="struct_ep_info.html#a9238dd40c096baedf041c98b19386a14">EpInfo::bmRcvToggle</a></div><div class="ttdeci">uint8_t bmRcvToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00041">address.h:41</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aeaf73d809ebb97bb1015789b8dc31ffa"><div class="ttname"><a href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa">AddressPoolImpl::AddressPoolImpl</a></div><div class="ttdeci">AddressPoolImpl()</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00159">address.h:159</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aeaf73d809ebb97bb1015789b8dc31ffa"><div class="ttname"><a href="class_address_pool_impl.html#aeaf73d809ebb97bb1015789b8dc31ffa">AddressPoolImpl::AddressPoolImpl</a></div><div class="ttdeci">AddressPoolImpl()</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00164">address.h:164</a></div></div>
<div class="ttc" id="struct_usb_device_address_html_a28e8292497f782fbe83f97ac70eb0aef"><div class="ttname"><a href="struct_usb_device_address.html#a28e8292497f782fbe83f97ac70eb0aef">UsbDeviceAddress::bmReserved</a></div><div class="ttdeci">uint8_t bmReserved</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00065">address.h:65</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aa3e12dda249ef6acbb27592fc8fe1cba"><div class="ttname"><a href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">AddressPoolImpl::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00174">address.h:174</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_aa3e12dda249ef6acbb27592fc8fe1cba"><div class="ttname"><a href="class_address_pool_impl.html#aa3e12dda249ef6acbb27592fc8fe1cba">AddressPoolImpl::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00180">address.h:180</a></div></div>
<div class="ttc" id="address_8h_html_a90edb051235924cb5280032df397f393"><div class="ttname"><a href="address_8h.html#a90edb051235924cb5280032df397f393">UsbDeviceHandleFunc</a></div><div class="ttdeci">void(* UsbDeviceHandleFunc)(UsbDevice *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
@ -385,19 +394,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="struct_usb_device_address_html_abd628d37834249af6518f320f3f19065"><div class="ttname"><a href="struct_usb_device_address.html#abd628d37834249af6518f320f3f19065">UsbDeviceAddress::bmParent</a></div><div class="ttdeci">uint8_t bmParent</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00063">address.h:63</a></div></div>
<div class="ttc" id="class_address_pool_impl_html"><div class="ttname"><a href="class_address_pool_impl.html">AddressPoolImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00096">address.h:96</a></div></div>
<div class="ttc" id="struct_usb_device_html_a828814f5231b866ac665a24ec5edaa3a"><div class="ttname"><a href="struct_usb_device.html#a828814f5231b866ac665a24ec5edaa3a">UsbDevice::epcount</a></div><div class="ttdeci">uint8_t epcount</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00078">address.h:78</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00185">address.h:185</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a09e6dc797f82543eba0879369116182e"><div class="ttname"><a href="class_address_pool_impl.html#a09e6dc797f82543eba0879369116182e">AddressPoolImpl::ForEachUsbDevice</a></div><div class="ttdeci">void ForEachUsbDevice(UsbDeviceHandleFunc pfunc)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00191">address.h:191</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="struct_usb_device_html_a855beb4cbe3e48b93298ea44d6cae86f"><div class="ttname"><a href="struct_usb_device.html#a855beb4cbe3e48b93298ea44d6cae86f">UsbDevice::address</a></div><div class="ttdeci">uint8_t address</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00077">address.h:77</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a3d59841faa336c359b0736ca45988ce5"><div class="ttname"><a href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">AddressPoolImpl::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00246">address.h:246</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a3d59841faa336c359b0736ca45988ce5"><div class="ttname"><a href="class_address_pool_impl.html#a3d59841faa336c359b0736ca45988ce5">AddressPoolImpl::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00254">address.h:254</a></div></div>
<div class="ttc" id="struct_usb_device_address_html"><div class="ttname"><a href="struct_usb_device_address.html">UsbDeviceAddress</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00057">address.h:57</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a14657183c73c631754b31bd0cc588c87"><div class="ttname"><a href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87">AddressPoolImpl::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00195">address.h:195</a></div></div>
<div class="ttc" id="class_address_pool_impl_html_a14657183c73c631754b31bd0cc588c87"><div class="ttname"><a href="class_address_pool_impl.html#a14657183c73c631754b31bd0cc588c87">AddressPoolImpl::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00202">address.h:202</a></div></div>
<div class="ttc" id="struct_usb_device_html_a351d1099501c36d9f301495acefd5f99"><div class="ttname"><a href="struct_usb_device.html#a351d1099501c36d9f301495acefd5f99">UsbDevice::address</a></div><div class="ttdeci">UsbDeviceAddress address</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00077">address.h:77</a></div></div>
<div class="ttc" id="struct_usb_device_address_html_a0a8f124a7e7a2ba116e70c2fbf0c551e"><div class="ttname"><a href="struct_usb_device_address.html#a0a8f124a7e7a2ba116e70c2fbf0c551e">UsbDeviceAddress::bmHub</a></div><div class="ttdeci">uint8_t bmHub</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00064">address.h:64</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">Circuits At Home, LTD</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">Web : http://www.circuitsathome.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">e-mail : support@circuitsathome.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="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="comment">/* Google ADK interface */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;bNumEP(1), <span class="comment">//if config descriptor needs to be parsed</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;ready(false) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// initialize endpoint data structures</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="adk_8h.html#ac39da606ffc273bd855152107297d6a1">ADK_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="adk_8h.html#ac39da606ffc273bd855152107297d6a1">ADK_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[i].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (i) ? 0 : 8;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }<span class="comment">//for(uint8_t i=0; i&lt;ADK_MAX_ENDPOINTS; i++...</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// register in USB subsystem</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>) {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<span class="keyword">this</span>); <span class="comment">//set devConfig[] entry</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
@ -153,324 +153,335 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* Connection initialization of an Android phone */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_a_d_k.html#a8c5c2e212c748966ccd863499d202063"> 63</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a8c5c2e212c748966ccd863499d202063">ADK::Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed) {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint8_t buf[<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>)];</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</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="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <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>();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nADK Init&quot;</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">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>) {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</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="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo is null\r\n&quot;</span>);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; 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">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>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</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#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<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_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">//USBTRACE2(&quot;setAddr:&quot;,rcode);</span></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; }<span class="comment">//if (rcode...</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr:&quot;, bAddress);</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Spec says you should wait at least 200ms.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; delay(300);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 1, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</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;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">//check if ADK device is already in accessory mode; if yes, configure and exit</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</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>*)buf)-&gt;idVendor == <a class="code" href="adk_8h.html#a37223416b6c1bba6b86ab17211bc9af2">ADK_VID</a> &amp;&amp;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; (((<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>*)buf)-&gt;idProduct == <a class="code" href="adk_8h.html#a32e861258886323d4dbcf066641597a4">ADK_PID</a> || ((<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>*)buf)-&gt;idProduct == <a class="code" href="adk_8h.html#a355cd5e5557b754645d4e1bfffabbf99">ADB_PID</a>)) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAcc.mode device detected&quot;</span>);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">/* go through configurations, find first bulk-IN, bulk-OUT EP, fill epInfo and quit */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; num_of_conf = ((<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>*)buf)-&gt;bNumConfigurations;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nNC:&quot;,num_of_conf);</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser &lt; 0, 0, 0, 0 &gt;</a> confDescrParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; delay(1);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, i, &amp;confDescrParser);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#if defined(XOOM)</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"></span> <span class="comment">//added by Jaylen Scott Vanorden</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nGot 1st bad code for config: &quot;</span>, rcode);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// Try once more</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, i, &amp;confDescrParser);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> &gt; 2) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">break</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"> 174</span>&#160; } <span class="comment">// for (uint8_t i=0; i&lt;num_of_conf; i++...</span></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="keywordflow">if</span> (<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> == 3) {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - this time all 3 endpoins</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 3, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// get memory address of USB device address pool</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <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>();</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nADK Init&quot;</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">// check if address has already been assigned to an instance</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAddress in use&quot;</span>);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAddress not found&quot;</span>);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(!p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>) {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo is null\r\n&quot;</span>);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</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">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="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Extract Max Packet Size from device descriptor</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</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#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</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="l00123"></a><span class="lineno"> 123</span>&#160; addrPool.<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="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">//USBTRACE2(&quot;setAddr:&quot;,rcode);</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }<span class="comment">//if (rcode...</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr:&quot;, bAddress);</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// Spec says you should wait at least 200ms.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">//delay(300);</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">//get pointer to assigned address record</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(!p) {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - only EP0 is known</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 1, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">//check if ADK device is already in accessory mode; if yes, configure and exit</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(udd-&gt;idVendor == <a class="code" href="adk_8h.html#a37223416b6c1bba6b86ab17211bc9af2">ADK_VID</a> &amp;&amp;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; (udd-&gt;idProduct == <a class="code" href="adk_8h.html#a32e861258886323d4dbcf066641597a4">ADK_PID</a> || udd-&gt;idProduct == <a class="code" href="adk_8h.html#a355cd5e5557b754645d4e1bfffabbf99">ADB_PID</a>)) {</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAcc.mode device detected&quot;</span>);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">/* go through configurations, find first bulk-IN, bulk-OUT EP, fill epInfo and quit */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; num_of_conf = udd-&gt;bNumConfigurations;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nNC:&quot;,num_of_conf);</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser &lt; 0, 0, 0, 0 &gt;</a> confDescrParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; delay(1);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, i, &amp;confDescrParser);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#if defined(XOOM)</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"></span> <span class="comment">//added by Jaylen Scott Vanorden</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nGot 1st bad code for config: &quot;</span>, rcode);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// Try once more</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</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#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, i, &amp;confDescrParser);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</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="keywordflow">if</span>(<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> &gt; 2) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } <span class="comment">// for (uint8_t i=0; i&lt;num_of_conf; i++...</span></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; <span class="keywordflow">if</span>(<a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a> == 3) {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer - this time all 3 endpoins</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</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#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 3, <a class="code" href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">epInfo</a>);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</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#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a>);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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; <span class="comment">/* print endpoint structure */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEndpoint Structure:&quot;);</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEP0:&quot;);</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[0].epAddr);</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[0].maxPktSize);</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[0].epAttribs);</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEpout:&quot;);</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[epDataOutIndex].epAddr);</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[epDataOutIndex].maxPktSize);</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[epDataOutIndex].epAttribs);</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEpin:&quot;);</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[epDataInIndex].maxPktSize);</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[epDataInIndex].epAttribs);</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nConfiguration successful&quot;</span>);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="class_a_d_k.html#a135db75b9e8cdd59b89f46c44dd83dd4">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">//successful configuration</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }<span class="comment">//if( buf-&gt;idVendor == ADK_VID...</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">//probe device - get accessory protocol revision</span></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; uint16_t adkproto = -1;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; delay(1);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; rcode = getProto((uint8_t*) &amp; adkproto);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#if defined(XOOM)</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"></span> <span class="comment">//added by Jaylen Scott Vanorden</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nGot 1st bad code for proto: &quot;</span>, rcode);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// Try once more</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; rcode = getProto((uint8_t*) &amp; adkproto);</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">goto</span> FailGetProto; <span class="comment">//init fails</span></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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nADK protocol rev. &quot;</span>, adkproto);</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="comment">//sending ID strings</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; sendStr(<a class="code" href="adk_8h.html#a12e00d6841cbb8fd9ae7c97402efa062">ACCESSORY_STRING_MANUFACTURER</a>, manufacturer);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; sendStr(<a class="code" href="adk_8h.html#a962954d4b489994aa347721c582fe242">ACCESSORY_STRING_MODEL</a>, model);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; sendStr(<a class="code" href="adk_8h.html#aa376dd887b57d0628df287dd1fce7f3b">ACCESSORY_STRING_DESCRIPTION</a>, description);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; sendStr(<a class="code" href="adk_8h.html#aab852db9aa38642ad7be827ae95351c5">ACCESSORY_STRING_VERSION</a>, version);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; sendStr(<a class="code" href="adk_8h.html#a0485b5be230520d0acde7ef32fb8210e">ACCESSORY_STRING_URI</a>, uri);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; sendStr(<a class="code" href="adk_8h.html#a31b2b6ec818e90cd9fe47bd4f7f86c16">ACCESSORY_STRING_SERIAL</a>, serial);</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="comment">//switch to accessory mode</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">//the Android phone will reset</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; rcode = switchAcc();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">goto</span> FailSwAcc; <span class="comment">//init fails</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; rcode = <a class="code" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; delay(1000); <span class="comment">// Give Android a chance to do its reset. This is a guess, and possibly could be lower.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">goto</span> SwAttempt; <span class="comment">//switch to accessory mode attempted</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</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#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a>);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">/* print endpoint structure */</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEndpoint Structure:&quot;);</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEP0:&quot;);</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[0].epAddr);</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[0].maxPktSize);</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[0].epAttribs);</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEpout:&quot;);</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[epDataOutIndex].epAddr);</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[epDataOutIndex].maxPktSize);</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[epDataOutIndex].epAttribs);</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> USBTRACE(&quot;\r\nEpin:&quot;);</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAddr: &quot;, epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nMax.pkt.size: &quot;, epInfo[epDataInIndex].maxPktSize);</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> USBTRACE2(&quot;\r\nAttr: &quot;, epInfo[epDataInIndex].epAttribs);</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> */</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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nConfiguration successful&quot;</span>);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_a_d_k.html#a135db75b9e8cdd59b89f46c44dd83dd4">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">//successful configuration</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }<span class="comment">//if( buf-&gt;idVendor == ADK_VID...</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">//probe device - get accessory protocol revision</span></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; uint16_t adkproto = -1;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; delay(1);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; rcode = getProto((uint8_t*) &amp; adkproto);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#if defined(XOOM)</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span> <span class="comment">//added by Jaylen Scott Vanorden</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nGot 1st bad code for proto: &quot;</span>, rcode);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// Try once more</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; rcode = getProto((uint8_t*) &amp; adkproto);</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;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">goto</span> FailGetProto; <span class="comment">//init fails</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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;\r\nADK protocol rev. &quot;</span>, adkproto);</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;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; delay(100);</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; <span class="comment">//sending ID strings</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; sendStr(<a class="code" href="adk_8h.html#a12e00d6841cbb8fd9ae7c97402efa062">ACCESSORY_STRING_MANUFACTURER</a>, manufacturer);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; delay(10);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; sendStr(<a class="code" href="adk_8h.html#a962954d4b489994aa347721c582fe242">ACCESSORY_STRING_MODEL</a>, model);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; delay(10);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; sendStr(<a class="code" href="adk_8h.html#aa376dd887b57d0628df287dd1fce7f3b">ACCESSORY_STRING_DESCRIPTION</a>, description);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; delay(10);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; sendStr(<a class="code" href="adk_8h.html#aab852db9aa38642ad7be827ae95351c5">ACCESSORY_STRING_VERSION</a>, version);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; delay(10);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; sendStr(<a class="code" href="adk_8h.html#a0485b5be230520d0acde7ef32fb8210e">ACCESSORY_STRING_URI</a>, uri);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; delay(10);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; sendStr(<a class="code" href="adk_8h.html#a31b2b6ec818e90cd9fe47bd4f7f86c16">ACCESSORY_STRING_SERIAL</a>, serial);</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; delay(100);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">/* diagnostic messages */</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>(rcode);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>(rcode);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>(rcode);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>(rcode);</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;FailGetProto:</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\ngetProto:&quot;</span>);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;FailSwAcc:</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nswAcc:&quot;</span>);</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">goto</span> Fail;</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></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;SwAttempt:</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAccessory mode switch attempt&quot;</span>);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"></span><span class="comment">//FailOnInit:</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">// USBTRACE(&quot;OnInit:&quot;);</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment">// goto Fail;</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;Fail:</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nADK Init Failed, error code: &quot;, rcode);</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">//NotifyFail(rcode);</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">Release</a>();</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">/* Extracts bulk-IN and bulk-OUT endpoint information from config descriptor */</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75"> 300</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="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Conf.Val&quot;), conf);</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Iface Num&quot;), iface);</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Alt.Set&quot;), alt);</span></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">//added by Yuuichi Akagawa</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</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="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">//switch to accessory mode</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">//the Android phone will reset</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; rcode = switchAcc();</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">goto</span> FailSwAcc; <span class="comment">//init fails</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; rcode = <a class="code" href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; delay(100); <span class="comment">// Give Android a chance to do its reset. This is a guess, and possibly could be lower.</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">goto</span> SwAttempt; <span class="comment">//switch to accessory mode attempted</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">/* diagnostic messages */</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;FailGetDevDescr:</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="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>(rcode);</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;FailSetDevTblEntry:</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="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>(rcode);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailGetConfDescr:</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>(rcode);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>(rcode);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;FailGetProto:</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\ngetProto:&quot;</span>);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">goto</span> Fail;</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;FailSwAcc:</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nswAcc:&quot;</span>);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">//FailOnInit:</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// USBTRACE(&quot;OnInit:&quot;);</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// goto Fail;</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;SwAttempt:</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;\r\nAccessory mode switch attempt&quot;</span>);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;Fail:</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"></span> <span class="comment">//USBTRACE2(&quot;\r\nADK Init Failed, error code: &quot;, rcode);</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">//NotifyFail(rcode);</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">Release</a>();</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a> = conf;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> ((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2) {</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; uint8_t 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="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</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="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a>++;</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"> 320</span>&#160; <span class="comment">//PrintEndpointDescriptor(pep);</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;}</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;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef"> 325</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a>() {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</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="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_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="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">/* Extracts bulk-IN and bulk-OUT endpoint information from config descriptor */</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75"> 311</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="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Conf.Val&quot;), conf);</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Iface Num&quot;), iface);</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">//ErrorMessage&lt;uint8_t&gt;(PSTR(&quot;Alt.Set&quot;), alt);</span></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; <span class="comment">//added by Yuuichi Akagawa</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span>;</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"> 320</span>&#160;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">bConfNum</a> = conf;</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; <span class="keywordflow">if</span>((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2) {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; uint8_t 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="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</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="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"> 328</span>&#160;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">bNumEP</a>++;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">//PrintEndpointDescriptor(pep);</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1"> 335</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="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr: &quot;, bAddress );</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nEP: &quot;,epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</span>&#160;}</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment">/* Performs a cleanup after failed Init() attempt */</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef"> 336</a></span>&#160;uint8_t <a class="code" href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a>() {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</span>&#160;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84"> 341</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="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"> 343</span>&#160;}</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50"> 345</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="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"> 348</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="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</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="l00352"></a><span class="lineno"> 352</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="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</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="l00355"></a><span class="lineno"> 355</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="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</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="l00360"></a><span class="lineno"> 360</span>&#160;}</div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a> = 0;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1"> 346</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="l00347"></a><span class="lineno"> 347</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nAddr: &quot;, bAddress );</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">//USBTRACE2(&quot;\r\nEP: &quot;,epInfo[epDataInIndex].epAddr);</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</span>&#160;}</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"><a class="line" href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84"> 352</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="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</span>&#160;}</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"><a class="line" href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50"> 356</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="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</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="l00360"></a><span class="lineno"> 360</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="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</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="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"> 364</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="l00365"></a><span class="lineno"> 365</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="l00366"></a><span class="lineno"> 366</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="l00367"></a><span class="lineno"> 367</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="l00368"></a><span class="lineno"> 368</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="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</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="l00371"></a><span class="lineno"> 371</span>&#160;}</div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="adk_8h_html_a355cd5e5557b754645d4e1bfffabbf99"><div class="ttname"><a href="adk_8h.html#a355cd5e5557b754645d4e1bfffabbf99">ADB_PID</a></div><div class="ttdeci">#define ADB_PID</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00027">adk.h:27</a></div></div>
<div class="ttc" id="adk_8h_html_a962954d4b489994aa347721c582fe242"><div class="ttname"><a href="adk_8h.html#a962954d4b489994aa347721c582fe242">ACCESSORY_STRING_MODEL</a></div><div class="ttdeci">#define ACCESSORY_STRING_MODEL</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00043">adk.h:43</a></div></div>
<div class="ttc" id="class_a_d_k_html_a964ec80ac133bf8d65cf0274e37b29da"><div class="ttname"><a href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">ADK::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00069">adk.h:69</a></div></div>
<div class="ttc" id="class_a_d_k_html_a66b9943dfa89f783a8cdeb655e6fe9b1"><div class="ttname"><a href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00335">adk.cpp:335</a></div></div>
<div class="ttc" id="class_a_d_k_html_a66b9943dfa89f783a8cdeb655e6fe9b1"><div class="ttname"><a href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00346">adk.cpp:346</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_a_d_k_html_a7f64af34d7890f87ceab5d144f6c26ef"><div class="ttname"><a href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00325">adk.cpp:325</a></div></div>
<div class="ttc" id="class_a_d_k_html_a7f64af34d7890f87ceab5d144f6c26ef"><div class="ttname"><a href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00336">adk.cpp:336</a></div></div>
<div class="ttc" id="adk_8h_html"><div class="ttname"><a href="adk_8h.html">adk.h</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac37bde02b6ed1436712d3619afb07c84"><div class="ttname"><a href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00341">adk.cpp:341</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac37bde02b6ed1436712d3619afb07c84"><div class="ttname"><a href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00352">adk.cpp:352</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a95cd9669dee9cab375a7c5e62284a01b"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">USB_ENDPOINT_DESCRIPTOR::bInterval</a></div><div class="ttdeci">uint8_t bInterval</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00147">usb_ch9.h:147</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a55263a9cc9dc17abc37226ac8a471ad0"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a55263a9cc9dc17abc37226ac8a471ad0">USB_ENDPOINT_DESCRIPTOR::bLength</a></div><div class="ttdeci">uint8_t bLength</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00142">usb_ch9.h:142</a></div></div>
<div class="ttc" id="adk_8h_html_a0485b5be230520d0acde7ef32fb8210e"><div class="ttname"><a href="adk_8h.html#a0485b5be230520d0acde7ef32fb8210e">ACCESSORY_STRING_URI</a></div><div class="ttdeci">#define ACCESSORY_STRING_URI</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00046">adk.h:46</a></div></div>
<div class="ttc" id="adk_8h_html_a12e00d6841cbb8fd9ae7c97402efa062"><div class="ttname"><a href="adk_8h.html#a12e00d6841cbb8fd9ae7c97402efa062">ACCESSORY_STRING_MANUFACTURER</a></div><div class="ttdeci">#define ACCESSORY_STRING_MANUFACTURER</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00042">adk.h:42</a></div></div>
<div class="ttc" id="class_a_d_k_html_aac2fac5410faea0e439b4f7e688b3d75"><div class="ttname"><a href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00300">adk.cpp:300</a></div></div>
<div class="ttc" id="class_a_d_k_html_aac2fac5410faea0e439b4f7e688b3d75"><div class="ttname"><a href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00311">adk.cpp:311</a></div></div>
<div class="ttc" id="class_a_d_k_html_ab28e3a19569c27f3ed5362e9800065c1"><div class="ttname"><a href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">ADK::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00073">adk.h:73</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_a_d_k_html_a14f24ca8246c5b6126a5aa72cf6ee120"><div class="ttname"><a href="class_a_d_k.html#a14f24ca8246c5b6126a5aa72cf6ee120">ADK::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00058">adk.cpp:58</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_a_d_k_html_acfc5a7e45f15bba7ff8cd42552796624"><div class="ttname"><a href="class_a_d_k.html#acfc5a7e45f15bba7ff8cd42552796624">ADK::epDataOutIndex</a></div><div class="ttdeci">static const uint8_t epDataOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00070">adk.h:70</a></div></div>
@ -481,16 +492,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a8ee7f1bafac335258c6e742969387f57"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a8ee7f1bafac335258c6e742969387f57">USB_ENDPOINT_DESCRIPTOR::bmAttributes</a></div><div class="ttdeci">uint8_t bmAttributes</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00145">usb_ch9.h:145</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00039">confdescparser.h:39</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00061">macros.h:61</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00038">confdescparser.h:38</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00067">macros.h:67</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="message_8h_html_a38aabfb47a8bf743b0532e356c39faaf"><div class="ttname"><a href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a></div><div class="ttdeci">#define NotifyFailGetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00052">message.h:52</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_a_d_k_html_a135db75b9e8cdd59b89f46c44dd83dd4"><div class="ttname"><a href="class_a_d_k.html#a135db75b9e8cdd59b89f46c44dd83dd4">ADK::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00078">adk.h:78</a></div></div>
<div class="ttc" id="adk_8h_html_a31b2b6ec818e90cd9fe47bd4f7f86c16"><div class="ttname"><a href="adk_8h.html#a31b2b6ec818e90cd9fe47bd4f7f86c16">ACCESSORY_STRING_SERIAL</a></div><div class="ttdeci">#define ACCESSORY_STRING_SERIAL</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00047">adk.h:47</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00290">Usb.cpp:290</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af34105fa6bd0029d9c6b73d85f7853c6"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af34105fa6bd0029d9c6b73d85f7853c6">USB_ENDPOINT_DESCRIPTOR::wMaxPacketSize</a></div><div class="ttdeci">uint16_t wMaxPacketSize</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00146">usb_ch9.h:146</a></div></div>
<div class="ttc" id="adk_8h_html_aab852db9aa38642ad7be827ae95351c5"><div class="ttname"><a href="adk_8h.html#aab852db9aa38642ad7be827ae95351c5">ACCESSORY_STRING_VERSION</a></div><div class="ttdeci">#define ACCESSORY_STRING_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00045">adk.h:45</a></div></div>
<div class="ttc" id="class_a_d_k_html_a29492dcd9b7f6023b7866cd05188d61c"><div class="ttname"><a href="class_a_d_k.html#a29492dcd9b7f6023b7866cd05188d61c">ADK::ADK</a></div><div class="ttdeci">ADK(USB *pUsb, const char *manufacturer, const char *model, const char *description, const char *version, const char *uri, const char *serial)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00025">adk.cpp:25</a></div></div>
@ -500,22 +511,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="adk_8h_html_ac39da606ffc273bd855152107297d6a1"><div class="ttname"><a href="adk_8h.html#ac39da606ffc273bd855152107297d6a1">ADK_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ADK_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00049">adk.h:49</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af39d036ab903a96b9d4d56b879555d6c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af39d036ab903a96b9d4d56b879555d6c">USB_ENDPOINT_DESCRIPTOR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00143">usb_ch9.h:143</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac4bd3303b99921289c3f59e2df219e50"><div class="ttname"><a href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00345">adk.cpp:345</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac4bd3303b99921289c3f59e2df219e50"><div class="ttname"><a href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00356">adk.cpp:356</a></div></div>
<div class="ttc" id="address_8h_html_a660e8da9c1167a8450aef91c5c03761d"><div class="ttname"><a href="address_8h.html#a660e8da9c1167a8450aef91c5c03761d">USB_NAK_NOWAIT</a></div><div class="ttdeci">#define USB_NAK_NOWAIT</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00029">address.h:29</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_a_d_k_html_a8c5c2e212c748966ccd863499d202063"><div class="ttname"><a href="class_a_d_k.html#a8c5c2e212c748966ccd863499d202063">ADK::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00063">adk.cpp:63</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="adk_8h_html_aa376dd887b57d0628df287dd1fce7f3b"><div class="ttname"><a href="adk_8h.html#aa376dd887b57d0628df287dd1fce7f3b">ACCESSORY_STRING_DESCRIPTION</a></div><div class="ttdeci">#define ACCESSORY_STRING_DESCRIPTION</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00044">adk.h:44</a></div></div>
<div class="ttc" id="class_a_d_k_html_adf969d306da15baecd5c59bbb568053e"><div class="ttname"><a href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">ADK::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00077">adk.h:77</a></div></div>
<div class="ttc" id="adk_8h_html_a37223416b6c1bba6b86ab17211bc9af2"><div class="ttname"><a href="adk_8h.html#a37223416b6c1bba6b86ab17211bc9af2">ADK_VID</a></div><div class="ttdeci">#define ADK_VID</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00025">adk.h:25</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="class_a_d_k_html_ae8fcc6a6fccab61116cea10dd1f17738"><div class="ttname"><a href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">ADK::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00075">adk.h:75</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00060">macros.h:60</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00065">macros.h:65</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="class_a_d_k_html_ab22a7c60cec56823727d4ff2cf2c4edf"><div class="ttname"><a href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">ADK::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00074">adk.h:74</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7cad2f024e98c4b2b1b52df76b10c01e"><div class="ttname"><a href="_usb_core_8h.html#a7cad2f024e98c4b2b1b52df76b10c01e">USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</a></div><div class="ttdeci">#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00072">UsbCore.h:72</a></div></div>
@ -525,7 +536,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -380,7 +380,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">Circuits At Home, LTD</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">Web : http://www.circuitsathome.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">e-mail : support@circuitsathome.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="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="comment">/* Google ADK interface support header */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
@ -118,8 +118,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="adk_8h.html#a355cd5e5557b754645d4e1bfffabbf99"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ADB_PID 0x2D01</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="adk_8h.html#aeb9a797aace2bcf4a9d1f786a632ca4b"> 29</a></span>&#160;<span class="preprocessor">#define XOOM //enables repeating getProto() and getConf() attempts</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"></span> <span class="comment">//necessary for slow devices such as Motorola XOOM</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="comment">//defined by default, can be commented out to save memory</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"></span><span class="comment">//necessary for slow devices such as Motorola XOOM</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//defined by default, can be commented out to save memory</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">/* requests */</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
@ -215,27 +215,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">/* returns 2 bytes in *adkproto */</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">inline</span> uint8_t ADK::getProto(uint8_t* adkproto) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a67b2829fb8d9f0e52eebef518ec6ebb0">bmREQ_ADK_GET</a>, <a class="code" href="adk_8h.html#a4c3e43d4d2955f93260f3e5ffe207e41">ADK_GETPROTO</a>, 0, 0, 0, 2, 2, adkproto, NULL));</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a67b2829fb8d9f0e52eebef518ec6ebb0">bmREQ_ADK_GET</a>, <a class="code" href="adk_8h.html#a4c3e43d4d2955f93260f3e5ffe207e41">ADK_GETPROTO</a>, 0, 0, 0, 2, 2, adkproto, NULL));</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">/* send ADK string */</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword">inline</span> uint8_t ADK::sendStr(uint8_t index, <span class="keyword">const</span> <span class="keywordtype">char</span>* str) {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a7da9c6adbc669b65ca3e4bd3f90c4c7b">bmREQ_ADK_SEND</a>, <a class="code" href="adk_8h.html#a4ab0e7e3adbc8bfc1bcdf29887c9a455">ADK_SENDSTR</a>, 0, 0, index, strlen(str) + 1, strlen(str) + 1, (uint8_t*) str, NULL));</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a7da9c6adbc669b65ca3e4bd3f90c4c7b">bmREQ_ADK_SEND</a>, <a class="code" href="adk_8h.html#a4ab0e7e3adbc8bfc1bcdf29887c9a455">ADK_SENDSTR</a>, 0, 0, index, strlen(str) + 1, strlen(str) + 1, (uint8_t*)str, NULL));</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">/* switch to accessory mode */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">inline</span> uint8_t ADK::switchAcc(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a7da9c6adbc669b65ca3e4bd3f90c4c7b">bmREQ_ADK_SEND</a>, <a class="code" href="adk_8h.html#a6ebdba027fb7072f681e6445a385e8f2">ADK_ACCSTART</a>, 0, 0, 0, 0, 0, NULL, NULL));</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</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#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_d_k.html#ab22a7c60cec56823727d4ff2cf2c4edf">bAddress</a>, 0, <a class="code" href="adk_8h.html#a7da9c6adbc669b65ca3e4bd3f90c4c7b">bmREQ_ADK_SEND</a>, <a class="code" href="adk_8h.html#a6ebdba027fb7072f681e6445a385e8f2">ADK_ACCSTART</a>, 0, 0, 0, 0, 0, NULL, NULL));</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#endif // _ADK_H_</span></div>
<div class="ttc" id="adk_8h_html_a355cd5e5557b754645d4e1bfffabbf99"><div class="ttname"><a href="adk_8h.html#a355cd5e5557b754645d4e1bfffabbf99">ADB_PID</a></div><div class="ttdeci">#define ADB_PID</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00027">adk.h:27</a></div></div>
<div class="ttc" id="class_a_d_k_html_a964ec80ac133bf8d65cf0274e37b29da"><div class="ttname"><a href="class_a_d_k.html#a964ec80ac133bf8d65cf0274e37b29da">ADK::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00069">adk.h:69</a></div></div>
<div class="ttc" id="class_a_d_k_html_a66b9943dfa89f783a8cdeb655e6fe9b1"><div class="ttname"><a href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00335">adk.cpp:335</a></div></div>
<div class="ttc" id="class_a_d_k_html_a7f64af34d7890f87ceab5d144f6c26ef"><div class="ttname"><a href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00325">adk.cpp:325</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac37bde02b6ed1436712d3619afb07c84"><div class="ttname"><a href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00341">adk.cpp:341</a></div></div>
<div class="ttc" id="class_a_d_k_html_a66b9943dfa89f783a8cdeb655e6fe9b1"><div class="ttname"><a href="class_a_d_k.html#a66b9943dfa89f783a8cdeb655e6fe9b1">ADK::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00346">adk.cpp:346</a></div></div>
<div class="ttc" id="class_a_d_k_html_a7f64af34d7890f87ceab5d144f6c26ef"><div class="ttname"><a href="class_a_d_k.html#a7f64af34d7890f87ceab5d144f6c26ef">ADK::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00336">adk.cpp:336</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac37bde02b6ed1436712d3619afb07c84"><div class="ttname"><a href="class_a_d_k.html#ac37bde02b6ed1436712d3619afb07c84">ADK::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00352">adk.cpp:352</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="class_a_d_k_html_aac2fac5410faea0e439b4f7e688b3d75"><div class="ttname"><a href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00300">adk.cpp:300</a></div></div>
<div class="ttc" id="class_a_d_k_html_aac2fac5410faea0e439b4f7e688b3d75"><div class="ttname"><a href="class_a_d_k.html#aac2fac5410faea0e439b4f7e688b3d75">ADK::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00311">adk.cpp:311</a></div></div>
<div class="ttc" id="class_a_d_k_html_ab28e3a19569c27f3ed5362e9800065c1"><div class="ttname"><a href="class_a_d_k.html#ab28e3a19569c27f3ed5362e9800065c1">ADK::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00073">adk.h:73</a></div></div>
<div class="ttc" id="class_a_d_k_html_a14f24ca8246c5b6126a5aa72cf6ee120"><div class="ttname"><a href="class_a_d_k.html#a14f24ca8246c5b6126a5aa72cf6ee120">ADK::ConfigureDevice</a></div><div class="ttdeci">virtual uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00058">adk.cpp:58</a></div></div>
<div class="ttc" id="adk_8h_html_a4c3e43d4d2955f93260f3e5ffe207e41"><div class="ttname"><a href="adk_8h.html#a4c3e43d4d2955f93260f3e5ffe207e41">ADK_GETPROTO</a></div><div class="ttdeci">#define ADK_GETPROTO</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00035">adk.h:35</a></div></div>
@ -258,10 +258,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_a_d_k_html_a6ffc693d731ddeb9499c11e893fc467d"><div class="ttname"><a href="class_a_d_k.html#a6ffc693d731ddeb9499c11e893fc467d">ADK::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ADK_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00081">adk.h:81</a></div></div>
<div class="ttc" id="adk_8h_html_a7da9c6adbc669b65ca3e4bd3f90c4c7b"><div class="ttname"><a href="adk_8h.html#a7da9c6adbc669b65ca3e4bd3f90c4c7b">bmREQ_ADK_SEND</a></div><div class="ttdeci">#define bmREQ_ADK_SEND</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00040">adk.h:40</a></div></div>
<div class="ttc" id="adk_8h_html_ac39da606ffc273bd855152107297d6a1"><div class="ttname"><a href="adk_8h.html#ac39da606ffc273bd855152107297d6a1">ADK_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ADK_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00049">adk.h:49</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00024">confdescparser.h:24</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac4bd3303b99921289c3f59e2df219e50"><div class="ttname"><a href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00345">adk.cpp:345</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00023">confdescparser.h:23</a></div></div>
<div class="ttc" id="class_a_d_k_html_ac4bd3303b99921289c3f59e2df219e50"><div class="ttname"><a href="class_a_d_k.html#ac4bd3303b99921289c3f59e2df219e50">ADK::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00356">adk.cpp:356</a></div></div>
<div class="ttc" id="class_a_d_k_html_a8c5c2e212c748966ccd863499d202063"><div class="ttname"><a href="class_a_d_k.html#a8c5c2e212c748966ccd863499d202063">ADK::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="adk_8cpp_source.html#l00063">adk.cpp:63</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_a_d_k_html_adf969d306da15baecd5c59bbb568053e"><div class="ttname"><a href="class_a_d_k.html#adf969d306da15baecd5c59bbb568053e">ADK::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00077">adk.h:77</a></div></div>
<div class="ttc" id="adk_8h_html_a37223416b6c1bba6b86ab17211bc9af2"><div class="ttname"><a href="adk_8h.html#a37223416b6c1bba6b86ab17211bc9af2">ADK_VID</a></div><div class="ttdeci">#define ADK_VID</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00025">adk.h:25</a></div></div>
<div class="ttc" id="class_a_d_k_html_ae8fcc6a6fccab61116cea10dd1f17738"><div class="ttname"><a href="class_a_d_k.html#ae8fcc6a6fccab61116cea10dd1f17738">ADK::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="adk_8h_source.html#l00075">adk.h:75</a></div></div>
@ -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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -141,32 +141,36 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_49_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_l2303.html" target="_self">PL2303</a></td><td class="desc"></td></tr>
<tr id="row_50_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_s3_b_t.html" target="_self">PS3BT</a></td><td class="desc"></td></tr>
<tr id="row_51_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_s3_u_s_b.html" target="_self">PS3USB</a></td><td class="desc"></td></tr>
<tr id="row_52_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_t_p_list_parser.html" target="_self">PTPListParser</a></td><td class="desc"></td></tr>
<tr id="row_53_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser.html" target="_self">ReportDescParser</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser2.html" target="_self">ReportDescParser2</a></td><td class="desc"></td></tr>
<tr id="row_55_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser_base.html" target="_self">ReportDescParserBase</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_request_sense_responce.html" target="_self">RequestSenseResponce</a></td><td class="desc"></td></tr>
<tr id="row_57_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_s_e_t_u_p___p_k_t.html" target="_self">SETUP_PKT</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_s_pi.html" target="_self">SPi</a></td><td class="desc"></td></tr>
<tr id="row_59_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_s_p_p.html" target="_self">SPP</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html" target="_self">TEL_RINGER_FUNC_DESCR</a></td><td class="desc"></td></tr>
<tr id="row_61_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_universal_report_parser.html" target="_self">UniversalReportParser</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b.html" target="_self">USB</a></td><td class="desc"></td></tr>
<tr id="row_63_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_CONFIGURATION_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_DEVICE_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_65_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_ENDPOINT_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___h_i_d___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_HID_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_67_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___i_n_t_e_r_f_a_c_e___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_INTERFACE_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_usb_config_xtracter.html" target="_self">UsbConfigXtracter</a></td><td class="desc"></td></tr>
<tr id="row_69_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_usb_device.html" target="_self">UsbDevice</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_usb_device_address.html" target="_self">UsbDeviceAddress</a></td><td class="desc"></td></tr>
<tr id="row_71_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_device_config.html" target="_self">USBDeviceConfig</a></td><td class="desc"></td></tr>
<tr id="row_72_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_hub.html" target="_self">USBHub</a></td><td class="desc"></td></tr>
<tr id="row_73_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_read_parser.html" target="_self">USBReadParser</a></td><td class="desc"></td></tr>
<tr id="row_74_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_w_i_i.html" target="_self">WII</a></td><td class="desc"></td></tr>
<tr id="row_75_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_o_l_d.html" target="_self">XBOXOLD</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_r_e_c_v.html" target="_self">XBOXRECV</a></td><td class="desc"></td></tr>
<tr id="row_77_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_u_s_b.html" target="_self">XBOXUSB</a></td><td class="desc"></td></tr>
<tr id="row_52_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_s4_b_t.html" target="_self">PS4BT</a></td><td class="desc"></td></tr>
<tr id="row_53_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="union_p_s4_buttons.html" target="_self">PS4Buttons</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_p_s4_data.html" target="_self">PS4Data</a></td><td class="desc"></td></tr>
<tr id="row_55_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_p_t_p_list_parser.html" target="_self">PTPListParser</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser.html" target="_self">ReportDescParser</a></td><td class="desc"></td></tr>
<tr id="row_57_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser2.html" target="_self">ReportDescParser2</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_report_desc_parser_base.html" target="_self">ReportDescParserBase</a></td><td class="desc"></td></tr>
<tr id="row_59_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_request_sense_responce.html" target="_self">RequestSenseResponce</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_s_e_t_u_p___p_k_t.html" target="_self">SETUP_PKT</a></td><td class="desc"></td></tr>
<tr id="row_61_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_sink_parser.html" target="_self">SinkParser</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_s_pi.html" target="_self">SPi</a></td><td class="desc"></td></tr>
<tr id="row_63_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_s_p_p.html" target="_self">SPP</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html" target="_self">TEL_RINGER_FUNC_DESCR</a></td><td class="desc"></td></tr>
<tr id="row_65_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_universal_report_parser.html" target="_self">UniversalReportParser</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b.html" target="_self">USB</a></td><td class="desc"></td></tr>
<tr id="row_67_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___c_o_n_f_i_g_u_r_a_t_i_o_n___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_CONFIGURATION_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_DEVICE_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_69_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_ENDPOINT_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___h_i_d___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_HID_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_71_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_u_s_b___i_n_t_e_r_f_a_c_e___d_e_s_c_r_i_p_t_o_r.html" target="_self">USB_INTERFACE_DESCRIPTOR</a></td><td class="desc"></td></tr>
<tr id="row_72_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_usb_config_xtracter.html" target="_self">UsbConfigXtracter</a></td><td class="desc"></td></tr>
<tr id="row_73_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_usb_device.html" target="_self">UsbDevice</a></td><td class="desc"></td></tr>
<tr id="row_74_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_usb_device_address.html" target="_self">UsbDeviceAddress</a></td><td class="desc"></td></tr>
<tr id="row_75_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_device_config.html" target="_self">USBDeviceConfig</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_hub.html" target="_self">USBHub</a></td><td class="desc"></td></tr>
<tr id="row_77_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_u_s_b_read_parser.html" target="_self">USBReadParser</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_w_i_i.html" target="_self">WII</a></td><td class="desc"></td></tr>
<tr id="row_79_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_o_l_d.html" target="_self">XBOXOLD</a></td><td class="desc"></td></tr>
<tr id="row_80_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_r_e_c_v.html" target="_self">XBOXRECV</a></td><td class="desc"></td></tr>
<tr id="row_81_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_x_b_o_x_u_s_b.html" target="_self">XBOXUSB</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
@ -174,7 +178,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: avrpins.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -96,7 +96,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: avrpins.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -309,7 +309,7 @@ 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;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">static</span> uint8_t IsSet() {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> PORT::PinRead() &amp; (uint8_t) (1 &lt;&lt; PIN);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> PORT::PinRead() &amp; (uint8_t)(1 &lt;&lt; PIN);</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;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> WaiteForSet() {</div>
@ -918,7 +918,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcacm.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for cdcacm.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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcacm.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -119,9 +119,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;bDataIface(0),</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;bNumEP(1),</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;qNextPollTime(0),</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;ready(false),</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;bPollEnable(false) {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;bPollEnable(false),</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;ready(false) {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[i].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (i) ? 0 : 8;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">//if (!i)</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[i].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</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="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>)</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
@ -139,407 +139,411 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">const</span> uint8_t constBufSize = <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>);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint8_t buf[constBufSize];</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;ACM Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;ACM Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; oldep_ptr = 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;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(0, 0, constBufSize, (uint8_t*)buf);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// Extract Max Packet Size from the device descriptor</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</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="l00105"></a><span class="lineno"> 105</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;setAddr:&quot;</span>, rcode);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Addr:&quot;</span>, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<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_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">getDevDescr</a>(0, 0, constBufSize, (uint8_t*)buf);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Extract Max Packet Size from the device descriptor</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">bMaxPacketSize0</a>;</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">// Assign new address to the device</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</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="l00107"></a><span class="lineno"> 107</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;setAddr:&quot;</span>, rcode);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Addr:&quot;</span>, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</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="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; num_of_conf = ((<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>*)buf)-&gt;bNumConfigurations;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 1, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</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="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NC:&quot;</span>, num_of_conf);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; num_of_conf = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">bNumConfigurations</a>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 1, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser</a>&lt; <a class="code" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758">USB_CLASS_COM_AND_CDC_CTRL</a>,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="cdcacm_8h.html#acce3aedc4473cc5526efc16448b89221">CDC_SUBCLASS_ACM</a>,</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="cdcacm_8h.html#a13977894f3398454f6573995afb89c5b">CDC_PROTOCOL_ITU_T_V_250</a>,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a> |</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="confdescparser_8h.html#a640401f5d117e10f0f0fd26f74f3975e">CP_MASK_COMPARE_SUBCLASS</a> |</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="confdescparser_8h.html#a1e4d3b53bdd61abb61f20d5973e194d7">CP_MASK_COMPARE_PROTOCOL</a> &gt; CdcControlParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser</a>&lt;<a class="code" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae">USB_CLASS_CDC_DATA</a>, 0, 0,</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a>&gt; CdcDataParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;CdcControlParser);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NC:&quot;</span>, num_of_conf);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser</a>&lt; <a class="code" href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758">USB_CLASS_COM_AND_CDC_CTRL</a>,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="cdcacm_8h.html#acce3aedc4473cc5526efc16448b89221">CDC_SUBCLASS_ACM</a>,</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="cdcacm_8h.html#a13977894f3398454f6573995afb89c5b">CDC_PROTOCOL_ITU_T_V_250</a>,</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a> |</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="confdescparser_8h.html#a640401f5d117e10f0f0fd26f74f3975e">CP_MASK_COMPARE_SUBCLASS</a> |</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="confdescparser_8h.html#a1e4d3b53bdd61abb61f20d5973e194d7">CP_MASK_COMPARE_PROTOCOL</a> &gt; CdcControlParser(<span class="keyword">this</span>);</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; <a class="code" href="class_config_desc_parser.html">ConfigDescParser</a>&lt;<a class="code" href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae">USB_CLASS_CDC_DATA</a>, 0, 0,</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a>&gt; CdcDataParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;CdcDataParser);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;CdcControlParser);</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="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</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="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &gt; 1)</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="comment">// for</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="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &lt; 4)</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Conf:&quot;</span>, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;CdcDataParser);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &gt; 1)</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="comment">// for</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &lt; 4)</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</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="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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; rcode = <a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>-&gt;<a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Conf:&quot;</span>, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</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; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
<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> FailOnInit;</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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;ACM configured\r\n&quot;</span>);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; rcode = <a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>-&gt;<a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">goto</span> FailOnInit;</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; <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;ACM configured\r\n&quot;</span>);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">//bPollEnable = true;</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">//USBTRACE(&quot;Poll enabled\r\n&quot;);</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> 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;FailGetDevDescr:</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;FailGetConfDescr:</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#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</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></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;FailOnInit:</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;OnInit:&quot;</span>);</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></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;Fail:</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86"> 222</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::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="l00223"></a><span class="lineno"> 223</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Conf.Val&quot;</span>), conf);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Iface Num&quot;</span>), iface);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Alt.Set&quot;</span>), alt);</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; <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a> = conf;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">//bPollEnable = true;</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">//USBTRACE(&quot;Poll enabled\r\n&quot;);</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">goto</span> Fail;</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></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;FailOnInit:</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="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;OnInit:&quot;</span>);</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></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"></span>Fail:</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86"> 224</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::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="l00225"></a><span class="lineno"> 225</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Conf.Val&quot;</span>), conf);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Iface Num&quot;</span>), iface);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Alt.Set&quot;</span>), alt);</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; uint8_t index;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a> = conf;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> ((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x03) == 3 &amp;&amp; (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)</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; index = <a class="code" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">epInterruptInIndex</a>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> ((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2)</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</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_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a> : <a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</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; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">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="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">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="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[index].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</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; <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>++;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t index;</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; <span class="keywordflow">if</span>((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x03) == 3 &amp;&amp; (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)</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; index = <a class="code" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">epInterruptInIndex</a>;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2)</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</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_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a> : <a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">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="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">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="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[index].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</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; <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">PrintEndpointDescriptor</a>(pep);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279"> 249</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a>() {</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">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_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a> = 0;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">bDataIface</a> = 0;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> = 1;</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; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">qNextPollTime</a> = 0;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36"> 262</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a>() {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint8_t rcode = 0;</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="keywordflow">if</span> (!<a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a>)</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;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">//uint32_t time_now = millis();</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>++;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">PrintEndpointDescriptor</a>(pep);</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;</div>
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279"> 251</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a>() {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">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_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</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; <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a> = 0;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">bDataIface</a> = 0;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> = 1;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">qNextPollTime</a> = 0;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a> = <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="line" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36"> 264</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a>() {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uint8_t rcode = 0;</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; <span class="keywordflow">if</span>(!<a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a>)</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">//if (qNextPollTime &lt;= time_now)</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// qNextPollTime = time_now + 100;</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">// uint8_t rcode;</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// const uint8_t constBufSize = 16;</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// uint8_t buf[constBufSize];</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="comment">// for (uint8_t i=0; i&lt;constBufSize; i++)</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// buf[i] = 0;</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; <span class="comment">// uint16_t read = (constBufSize &gt; epInfo[epInterruptInIndex].maxPktSize)</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// ? epInfo[epInterruptInIndex].maxPktSize : constBufSize;</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// rcode = pUsb-&gt;inTransfer(bAddress, epInfo[epInterruptInIndex].epAddr, &amp;read, buf);</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// if (rcode)</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// return rcode;</span></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="comment">// for (uint8_t i=0; i&lt;read; i++)</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// {</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// PrintHex&lt;uint8_t&gt;(buf[i]);</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// USB_HOST_SERIAL.print(&quot; &quot;);</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// }</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// USBTRACE(&quot;\r\n&quot;);</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">//}</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca"> 298</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a>].epAddr, bytes_rcvd, dataptr);</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"><a class="line" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923"> 302</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>].epAddr, nbytes, dataptr);</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;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10"> 306</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a893b79445f99070657e8d45f6495b174">CDC_SET_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, nbytes, nbytes, dataptr, NULL));</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;</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825"> 310</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#af2ac2e2644603a3d1013be940c43314d">bmREQ_CDCIN</a>, <a class="code" href="cdcacm_8h.html#ad0912dac888d01142b225b0c6f8a508f">CDC_GET_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, nbytes, nbytes, dataptr, NULL));</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"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf"> 314</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a>(uint16_t fid) {</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a6c79b8666110840333ad3785bf7ce87c">CDC_CLEAR_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</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"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504"> 318</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a>(<span class="keyword">const</span> <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr) {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#ad07ce089c8757b8d2ff37ddd83dc9351">CDC_SET_LINE_CODING</a>, 0x00, 0x00, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, sizeof (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), <span class="keyword">sizeof</span> (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), (uint8_t*)dataptr, NULL));</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</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"><a class="line" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1"> 322</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a>(<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr) {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#af2ac2e2644603a3d1013be940c43314d">bmREQ_CDCIN</a>, <a class="code" href="cdcacm_8h.html#a1068ab45668e413d964a01bc36fa2d43">CDC_GET_LINE_CODING</a>, 0x00, 0x00, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, sizeof (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), <span class="keyword">sizeof</span> (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), (uint8_t*)dataptr, NULL));</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="line" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd"> 326</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a>(uint8_t state) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a11c392243dec4d03970f1eaa1f8053ae">CDC_SET_CONTROL_LINE_STATE</a>, state, 0, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</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"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff"> 330</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a>(uint16_t duration) {</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a868c480caf0abda6b458c82281dda8ad">CDC_SEND_BREAK</a>, (duration &amp; 0xff), (duration &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6"> 334</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"> 348</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="l00349"></a><span class="lineno"> 349</span>&#160;}</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">//uint32_t time_now = millis();</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">//if (qNextPollTime &lt;= time_now)</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// qNextPollTime = time_now + 100;</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="comment">// uint8_t rcode;</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// const uint8_t constBufSize = 16;</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// uint8_t buf[constBufSize];</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// for (uint8_t i=0; i&lt;constBufSize; i++)</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// buf[i] = 0;</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="comment">// uint16_t read = (constBufSize &gt; epInfo[epInterruptInIndex].maxPktSize)</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// ? epInfo[epInterruptInIndex].maxPktSize : constBufSize;</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// rcode = pUsb-&gt;inTransfer(bAddress, epInfo[epInterruptInIndex].epAddr, &amp;read, buf);</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">// if (rcode)</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">// return rcode;</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="comment">// for (uint8_t i=0; i&lt;read; i++)</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// {</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// PrintHex&lt;uint8_t&gt;(buf[i]);</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// USB_HOST_SERIAL.print(&quot; &quot;);</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// }</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// USBTRACE(&quot;\r\n&quot;);</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">//}</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca"> 300</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a>].epAddr, bytes_rcvd, dataptr);</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;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923"> 304</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>].epAddr, nbytes, dataptr);</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"><a class="line" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10"> 308</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a893b79445f99070657e8d45f6495b174">CDC_SET_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, nbytes, nbytes, dataptr, NULL));</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="line" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825"> 312</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#af2ac2e2644603a3d1013be940c43314d">bmREQ_CDCIN</a>, <a class="code" href="cdcacm_8h.html#ad0912dac888d01142b225b0c6f8a508f">CDC_GET_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, nbytes, nbytes, dataptr, NULL));</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"> 315</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf"> 316</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a>(uint16_t fid) {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a6c79b8666110840333ad3785bf7ce87c">CDC_CLEAR_COMM_FEATURE</a>, (fid &amp; 0xff), (fid &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</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"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504"> 320</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a>(<span class="keyword">const</span> <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#ad07ce089c8757b8d2ff37ddd83dc9351">CDC_SET_LINE_CODING</a>, 0x00, 0x00, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, sizeof (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), <span class="keyword">sizeof</span> (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), (uint8_t*)dataptr, NULL));</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="line" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1"> 324</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a>(<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr) {</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#af2ac2e2644603a3d1013be940c43314d">bmREQ_CDCIN</a>, <a class="code" href="cdcacm_8h.html#a1068ab45668e413d964a01bc36fa2d43">CDC_GET_LINE_CODING</a>, 0x00, 0x00, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, sizeof (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), <span class="keyword">sizeof</span> (<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>), (uint8_t*)dataptr, NULL));</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="line" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd"> 328</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a>(uint8_t state) {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a11c392243dec4d03970f1eaa1f8053ae">CDC_SET_CONTROL_LINE_STATE</a>, state, 0, <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</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="line" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff"> 332</a></span>&#160;uint8_t <a class="code" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a>(uint16_t duration) {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> ( <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a>, <a class="code" href="cdcacm_8h.html#a868c480caf0abda6b458c82281dda8ad">CDC_SEND_BREAK</a>, (duration &amp; 0xff), (duration &gt;&gt; 8), <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>, 0, 0, NULL, NULL));</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="line" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6"> 336</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::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="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"> 348</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="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>&#160;}</div>
<div class="ttc" id="_usb_core_8h_html_abb99f6b1f38ff79ec678cd957ac86758"><div class="ttname"><a href="_usb_core_8h.html#abb99f6b1f38ff79ec678cd957ac86758">USB_CLASS_COM_AND_CDC_CTRL</a></div><div class="ttdeci">#define USB_CLASS_COM_AND_CDC_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00042">UsbCore.h:42</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a7dae7df3ce2685f96775f2a0fb8658ae"><div class="ttname"><a href="_usb_core_8h.html#a7dae7df3ce2685f96775f2a0fb8658ae">USB_CLASS_CDC_DATA</a></div><div class="ttdeci">#define USB_CLASS_CDC_DATA</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00049">UsbCore.h:49</a></div></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="cdcacm_8h_html_acce3aedc4473cc5526efc16448b89221"><div class="ttname"><a href="cdcacm_8h.html#acce3aedc4473cc5526efc16448b89221">CDC_SUBCLASS_ACM</a></div><div class="ttdeci">#define CDC_SUBCLASS_ACM</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00027">cdcacm.h:27</a></div></div>
<div class="ttc" id="class_a_c_m_html_aa5d83ef9d48dab404090e9136522707a"><div class="ttname"><a href="class_a_c_m.html#aa5d83ef9d48dab404090e9136522707a">ACM::ACM</a></div><div class="ttdeci">ACM(USB *pusb, CDCAsyncOper *pasync)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00023">cdcacm.cpp:23</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a13977894f3398454f6573995afb89c5b"><div class="ttname"><a href="cdcacm_8h.html#a13977894f3398454f6573995afb89c5b">CDC_PROTOCOL_ITU_T_V_250</a></div><div class="ttdeci">#define CDC_PROTOCOL_ITU_T_V_250</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00040">cdcacm.h:40</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a1e4d3b53bdd61abb61f20d5973e194d7"><div class="ttname"><a href="confdescparser_8h.html#a1e4d3b53bdd61abb61f20d5973e194d7">CP_MASK_COMPARE_PROTOCOL</a></div><div class="ttdeci">#define CP_MASK_COMPARE_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00033">confdescparser.h:33</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a1e4d3b53bdd61abb61f20d5973e194d7"><div class="ttname"><a href="confdescparser_8h.html#a1e4d3b53bdd61abb61f20d5973e194d7">CP_MASK_COMPARE_PROTOCOL</a></div><div class="ttdeci">#define CP_MASK_COMPARE_PROTOCOL</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00032">confdescparser.h:32</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9b32207fdf256e5f8553ba4048b64307"><div class="ttname"><a href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">ACM::epInterruptInIndex</a></div><div class="ttdeci">static const uint8_t epInterruptInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00143">cdcacm.h:143</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9b32207fdf256e5f8553ba4048b64307"><div class="ttname"><a href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">ACM::epInterruptInIndex</a></div><div class="ttdeci">static const uint8_t epInterruptInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00142">cdcacm.h:142</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="class_a_c_m_html_a0dc940bc4f1bed7525bb768e37e6cb61"><div class="ttname"><a href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">ACM::epDataOutIndex</a></div><div class="ttdeci">static const uint8_t epDataOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00142">cdcacm.h:142</a></div></div>
<div class="ttc" id="class_a_c_m_html_a0dc940bc4f1bed7525bb768e37e6cb61"><div class="ttname"><a href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">ACM::epDataOutIndex</a></div><div class="ttdeci">static const uint8_t epDataOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00141">cdcacm.h:141</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a6c79b8666110840333ad3785bf7ce87c"><div class="ttname"><a href="cdcacm_8h.html#a6c79b8666110840333ad3785bf7ce87c">CDC_CLEAR_COMM_FEATURE</a></div><div class="ttdeci">#define CDC_CLEAR_COMM_FEATURE</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00055">cdcacm.h:55</a></div></div>
<div class="ttc" id="class_a_c_m_html_a6701d70ae4734e8a81971d9fb8b085f2"><div class="ttname"><a href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">ACM::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00152">cdcacm.h:152</a></div></div>
<div class="ttc" id="class_a_c_m_html_a6701d70ae4734e8a81971d9fb8b085f2"><div class="ttname"><a href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">ACM::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00151">cdcacm.h:151</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5512d9e8c8c59371f16018fe8ce46b19"><div class="ttname"><a href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">ACM::bControlIface</a></div><div class="ttdeci">uint8_t bControlIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00149">cdcacm.h:149</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5512d9e8c8c59371f16018fe8ce46b19"><div class="ttname"><a href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">ACM::bControlIface</a></div><div class="ttdeci">uint8_t bControlIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00148">cdcacm.h:148</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a893b79445f99070657e8d45f6495b174"><div class="ttname"><a href="cdcacm_8h.html#a893b79445f99070657e8d45f6495b174">CDC_SET_COMM_FEATURE</a></div><div class="ttdeci">#define CDC_SET_COMM_FEATURE</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00053">cdcacm.h:53</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a95cd9669dee9cab375a7c5e62284a01b"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">USB_ENDPOINT_DESCRIPTOR::bInterval</a></div><div class="ttdeci">uint8_t bInterval</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00147">usb_ch9.h:147</a></div></div>
<div class="ttc" id="cdcacm_8h_html_ad07ce089c8757b8d2ff37ddd83dc9351"><div class="ttname"><a href="cdcacm_8h.html#ad07ce089c8757b8d2ff37ddd83dc9351">CDC_SET_LINE_CODING</a></div><div class="ttdeci">#define CDC_SET_LINE_CODING</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00062">cdcacm.h:62</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a55263a9cc9dc17abc37226ac8a471ad0"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a55263a9cc9dc17abc37226ac8a471ad0">USB_ENDPOINT_DESCRIPTOR::bLength</a></div><div class="ttdeci">uint8_t bLength</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00142">usb_ch9.h:142</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00154">cdcacm.h:154</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_a92d96e9016c96043dccf56872d13a628"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">USB_DEVICE_DESCRIPTOR::bMaxPacketSize0</a></div><div class="ttdeci">uint8_t bMaxPacketSize0</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00105">usb_ch9.h:105</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00153">cdcacm.h:153</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="class_a_c_m_html_a720b72b524e03da8f17c045e0d689ba1"><div class="ttname"><a href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">ACM::bDataIface</a></div><div class="ttdeci">uint8_t bDataIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00150">cdcacm.h:150</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00151">cdcacm.h:151</a></div></div>
<div class="ttc" id="class_a_c_m_html_a720b72b524e03da8f17c045e0d689ba1"><div class="ttname"><a href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">ACM::bDataIface</a></div><div class="ttdeci">uint8_t bDataIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00149">cdcacm.h:149</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00144">cdcacm.h:144</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00150">cdcacm.h:150</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a5797aa38c730dde78bf3181282bd6bf9"><div class="ttname"><a href="cdcacm_8h.html#a5797aa38c730dde78bf3181282bd6bf9">bmREQ_CDCOUT</a></div><div class="ttdeci">#define bmREQ_CDCOUT</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00022">cdcacm.h:22</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00156">cdcacm.h:156</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00155">cdcacm.h:155</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a97d95efc3446be55adbb1801c356c55c"><div class="ttname"><a href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a></div><div class="ttdeci">#define CP_MASK_COMPARE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00031">confdescparser.h:31</a></div></div>
<div class="ttc" id="class_a_c_m_html_acd6716c4fc871942fca55e1501dc5b09"><div class="ttname"><a href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">ACM::bPollEnable</a></div><div class="ttdeci">bool bPollEnable</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00153">cdcacm.h:153</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a97d95efc3446be55adbb1801c356c55c"><div class="ttname"><a href="confdescparser_8h.html#a97d95efc3446be55adbb1801c356c55c">CP_MASK_COMPARE_CLASS</a></div><div class="ttdeci">#define CP_MASK_COMPARE_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00030">confdescparser.h:30</a></div></div>
<div class="ttc" id="class_a_c_m_html_acd6716c4fc871942fca55e1501dc5b09"><div class="ttname"><a href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">ACM::bPollEnable</a></div><div class="ttdeci">bool bPollEnable</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00152">cdcacm.h:152</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a868c480caf0abda6b458c82281dda8ad"><div class="ttname"><a href="cdcacm_8h.html#a868c480caf0abda6b458c82281dda8ad">CDC_SEND_BREAK</a></div><div class="ttdeci">#define CDC_SEND_BREAK</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00065">cdcacm.h:65</a></div></div>
<div class="ttc" id="cdcacm_8h_html_ad0912dac888d01142b225b0c6f8a508f"><div class="ttname"><a href="cdcacm_8h.html#ad0912dac888d01142b225b0c6f8a508f">CDC_GET_COMM_FEATURE</a></div><div class="ttdeci">#define CDC_GET_COMM_FEATURE</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00054">cdcacm.h:54</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="class_a_c_m_html_aa05a65487f5e02bab40ccba1018ee5b6"><div class="ttname"><a href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00334">cdcacm.cpp:334</a></div></div>
<div class="ttc" id="class_a_c_m_html_aa05a65487f5e02bab40ccba1018ee5b6"><div class="ttname"><a href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00336">cdcacm.cpp:336</a></div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a8ee7f1bafac335258c6e742969387f57"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a8ee7f1bafac335258c6e742969387f57">USB_ENDPOINT_DESCRIPTOR::bmAttributes</a></div><div class="ttdeci">uint8_t bmAttributes</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00145">usb_ch9.h:145</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00039">confdescparser.h:39</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00061">macros.h:61</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="cdcacm_8h_html_aa11e629b02a0cd7d768f796732cb2694"><div class="ttname"><a href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ACM_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00137">cdcacm.h:137</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00038">confdescparser.h:38</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00067">macros.h:67</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="cdcacm_8h_html_aa11e629b02a0cd7d768f796732cb2694"><div class="ttname"><a href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ACM_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00136">cdcacm.h:136</a></div></div>
<div class="ttc" id="message_8h_html_a38aabfb47a8bf743b0532e356c39faaf"><div class="ttname"><a href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a></div><div class="ttdeci">#define NotifyFailGetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00052">message.h:52</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9d922317b25a7ae086a6fe79984ab8d1"><div class="ttname"><a href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a></div><div class="ttdeci">uint8_t GetLineCoding(LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00322">cdcacm.cpp:322</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9d922317b25a7ae086a6fe79984ab8d1"><div class="ttname"><a href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a></div><div class="ttdeci">uint8_t GetLineCoding(LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00324">cdcacm.cpp:324</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="cdcacm_8h_html_af2ac2e2644603a3d1013be940c43314d"><div class="ttname"><a href="cdcacm_8h.html#af2ac2e2644603a3d1013be940c43314d">bmREQ_CDCIN</a></div><div class="ttdeci">#define bmREQ_CDCIN</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00023">cdcacm.h:23</a></div></div>
<div class="ttc" id="class_a_c_m_html_ac96caeb8d657fa76219872ceb4379923"><div class="ttname"><a href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00302">cdcacm.cpp:302</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79e4da2cae9145d895a6a1211a96fe36"><div class="ttname"><a href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00262">cdcacm.cpp:262</a></div></div>
<div class="ttc" id="class_a_c_m_html_ac96caeb8d657fa76219872ceb4379923"><div class="ttname"><a href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00304">cdcacm.cpp:304</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79e4da2cae9145d895a6a1211a96fe36"><div class="ttname"><a href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00264">cdcacm.cpp:264</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a1068ab45668e413d964a01bc36fa2d43"><div class="ttname"><a href="cdcacm_8h.html#a1068ab45668e413d964a01bc36fa2d43">CDC_GET_LINE_CODING</a></div><div class="ttdeci">#define CDC_GET_LINE_CODING</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00063">cdcacm.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00290">Usb.cpp:290</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af34105fa6bd0029d9c6b73d85f7853c6"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af34105fa6bd0029d9c6b73d85f7853c6">USB_ENDPOINT_DESCRIPTOR::wMaxPacketSize</a></div><div class="ttdeci">uint16_t wMaxPacketSize</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00146">usb_ch9.h:146</a></div></div>
<div class="ttc" id="class_a_c_m_html_ad3210651d58c77d3ded4b4b83a9476b7"><div class="ttname"><a href="class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7">ACM::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00047">cdcacm.cpp:47</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a640401f5d117e10f0f0fd26f74f3975e"><div class="ttname"><a href="confdescparser_8h.html#a640401f5d117e10f0f0fd26f74f3975e">CP_MASK_COMPARE_SUBCLASS</a></div><div class="ttdeci">#define CP_MASK_COMPARE_SUBCLASS</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00032">confdescparser.h:32</a></div></div>
<div class="ttc" id="confdescparser_8h_html_a640401f5d117e10f0f0fd26f74f3975e"><div class="ttname"><a href="confdescparser_8h.html#a640401f5d117e10f0f0fd26f74f3975e">CP_MASK_COMPARE_SUBCLASS</a></div><div class="ttdeci">#define CP_MASK_COMPARE_SUBCLASS</div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00031">confdescparser.h:31</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a23fbb539d72d10a6cb12efedf7d3457c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a23fbb539d72d10a6cb12efedf7d3457c">USB_ENDPOINT_DESCRIPTOR::bEndpointAddress</a></div><div class="ttdeci">uint8_t bEndpointAddress</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00144">usb_ch9.h:144</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5917b5098e529fafe67a53e03f1e7011"><div class="ttname"><a href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">ACM::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00141">cdcacm.h:141</a></div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5917b5098e529fafe67a53e03f1e7011"><div class="ttname"><a href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">ACM::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00140">cdcacm.h:140</a></div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00110">cdcacm.h:110</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af39d036ab903a96b9d4d56b879555d6c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af39d036ab903a96b9d4d56b879555d6c">USB_ENDPOINT_DESCRIPTOR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00143">usb_ch9.h:143</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79eb8706c7f1432593fb2f2eee0da504"><div class="ttname"><a href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a></div><div class="ttdeci">uint8_t SetLineCoding(const LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00318">cdcacm.cpp:318</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79eb8706c7f1432593fb2f2eee0da504"><div class="ttname"><a href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a></div><div class="ttdeci">uint8_t SetLineCoding(const LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00320">cdcacm.cpp:320</a></div></div>
<div class="ttc" id="cdcacm_8h_html"><div class="ttname"><a href="cdcacm_8h.html">cdcacm.h</a></div></div>
<div class="ttc" id="class_a_c_m_html_af5b411a7ccc82bd77a7c5cfba6cd9a86"><div class="ttname"><a href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00222">cdcacm.cpp:222</a></div></div>
<div class="ttc" id="class_a_c_m_html_a2a618cbff52737740e76977db557ddff"><div class="ttname"><a href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a></div><div class="ttdeci">uint8_t SendBreak(uint16_t duration)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00330">cdcacm.cpp:330</a></div></div>
<div class="ttc" id="class_a_c_m_html_af5b411a7ccc82bd77a7c5cfba6cd9a86"><div class="ttname"><a href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00224">cdcacm.cpp:224</a></div></div>
<div class="ttc" id="class_a_c_m_html_a2a618cbff52737740e76977db557ddff"><div class="ttname"><a href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a></div><div class="ttdeci">uint8_t SendBreak(uint16_t duration)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00332">cdcacm.cpp:332</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00129">cdcacm.h:129</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00128">cdcacm.h:128</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="class_a_c_m_html_a18208672a707391863b8abdc6714c825"><div class="ttname"><a href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a></div><div class="ttdeci">uint8_t GetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00310">cdcacm.cpp:310</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00249">cdcacm.cpp:249</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00148">cdcacm.h:148</a></div></div>
<div class="ttc" id="class_a_c_m_html_a18208672a707391863b8abdc6714c825"><div class="ttname"><a href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a></div><div class="ttdeci">uint8_t GetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00312">cdcacm.cpp:312</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00251">cdcacm.cpp:251</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ab1b8db3992e0dceb2ba86f3bab1e5bca"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">USB_DEVICE_DESCRIPTOR::bNumConfigurations</a></div><div class="ttdeci">uint8_t bNumConfigurations</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00112">usb_ch9.h:112</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a11c392243dec4d03970f1eaa1f8053ae"><div class="ttname"><a href="cdcacm_8h.html#a11c392243dec4d03970f1eaa1f8053ae">CDC_SET_CONTROL_LINE_STATE</a></div><div class="ttdeci">#define CDC_SET_CONTROL_LINE_STATE</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00064">cdcacm.h:64</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html_a899353c3cbf83d7f874d11e5d9db4722"><div class="ttname"><a href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">CDCAsyncOper::OnInit</a></div><div class="ttdeci">virtual uint8_t OnInit(ACM *pacm)=0</div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="class_a_c_m_html_af2e08e5f03f17ed039985147a7129bbd"><div class="ttname"><a href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a></div><div class="ttdeci">uint8_t SetControlLineState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00326">cdcacm.cpp:326</a></div></div>
<div class="ttc" id="class_a_c_m_html_a62c91ac62e8e3bf66bc3940d5b934c10"><div class="ttname"><a href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a></div><div class="ttdeci">uint8_t SetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00306">cdcacm.cpp:306</a></div></div>
<div class="ttc" id="class_a_c_m_html_a74a3484a0f524ddf0e228c17addcebdf"><div class="ttname"><a href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a></div><div class="ttdeci">uint8_t ClearCommFeature(uint16_t fid)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00314">cdcacm.cpp:314</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00060">macros.h:60</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="class_a_c_m_html_af2e08e5f03f17ed039985147a7129bbd"><div class="ttname"><a href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a></div><div class="ttdeci">uint8_t SetControlLineState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00328">cdcacm.cpp:328</a></div></div>
<div class="ttc" id="class_a_c_m_html_a62c91ac62e8e3bf66bc3940d5b934c10"><div class="ttname"><a href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a></div><div class="ttdeci">uint8_t SetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00308">cdcacm.cpp:308</a></div></div>
<div class="ttc" id="class_a_c_m_html_a74a3484a0f524ddf0e228c17addcebdf"><div class="ttname"><a href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a></div><div class="ttdeci">uint8_t ClearCommFeature(uint16_t fid)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00316">cdcacm.cpp:316</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00065">macros.h:65</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7f455b7a649522c29f2e63d668b0ccca"><div class="ttname"><a href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00298">cdcacm.cpp:298</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7f455b7a649522c29f2e63d668b0ccca"><div class="ttname"><a href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00300">cdcacm.cpp:300</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcacm.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -969,7 +969,7 @@ Typedefs</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="cdcacm_8h_source.html#l00137">137</a> of file <a class="el" href="cdcacm_8h_source.html">cdcacm.h</a>.</p>
<p>Definition at line <a class="el" href="cdcacm_8h_source.html#l00136">136</a> of file <a class="el" href="cdcacm_8h_source.html">cdcacm.h</a>.</p>
</div>
</div>
@ -1016,7 +1016,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcacm.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -205,163 +205,162 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_l_i_n_e___c_o_d_i_n_g.html#a2c360b6f874f2cf45f95492f9e6c1812"> 114</a></span>&#160; uint8_t <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html#a2c360b6f874f2cf45f95492f9e6c1812">bDataBits</a>; <span class="comment">// Data bits (5, 6, 7, 8 or 16)</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a>;</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"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html"> 117</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c"> 119</a></span>&#160; uint8_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c">bmRequestType</a>; <span class="comment">// 0xa1 for class-specific notifications</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56"> 120</a></span>&#160; uint8_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56">bNotification</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc"> 121</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc">wValue</a>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352"> 122</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352">wIndex</a>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2"> 123</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2">wLength</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c"> 124</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c">bmState</a>; <span class="comment">//UART state bitmap for SERIAL_STATE, other notifications variable length</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html">CLASS_NOTIFICATION</a>;</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="keyword">class </span><a class="code" href="class_a_c_m.html">ACM</a>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_c_d_c_async_oper.html"> 129</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<a class="code" href="class_a_c_m.html">ACM</a> *pacm) = 0;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">//virtual void OnDataRcvd(ACM *pacm, uint8_t nbytes, uint8_t *dataptr) = 0;</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//virtual void OnDisconnected(ACM *pacm) = 0;</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html"> 117</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c"> 118</a></span>&#160; uint8_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c">bmRequestType</a>; <span class="comment">// 0xa1 for class-specific notifications</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56"> 119</a></span>&#160; uint8_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56">bNotification</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc"> 120</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc">wValue</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352"> 121</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352">wIndex</a>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2"> 122</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2">wLength</a>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c"> 123</a></span>&#160; uint16_t <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c">bmState</a>; <span class="comment">//UART state bitmap for SERIAL_STATE, other notifications variable length</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <a class="code" href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html">CLASS_NOTIFICATION</a>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">class </span><a class="code" href="class_a_c_m.html">ACM</a>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_c_d_c_async_oper.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<a class="code" href="class_a_c_m.html">ACM</a> *pacm) = 0;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">//virtual void OnDataRcvd(ACM *pacm, uint8_t nbytes, uint8_t *dataptr) = 0;</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">//virtual void OnDisconnected(ACM *pacm) = 0;</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694"> 137</a></span>&#160;<span class="preprocessor">#define ACM_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_a_c_m.html"> 139</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_c_m.html">ACM</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011"> 141</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a>; <span class="comment">// DataIn endpoint index</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61"> 142</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>; <span class="comment">// DataOUT endpoint index</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307"> 143</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">epInterruptInIndex</a>; <span class="comment">// InterruptIN endpoint index</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7"> 145</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95"> 146</a></span>&#160; <a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> *<a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111"> 147</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39"> 148</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>; <span class="comment">// configuration number</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19"> 149</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>; <span class="comment">// Control interface value</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1"> 150</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">bDataIface</a>; <span class="comment">// Data interface value</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93"> 151</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>; <span class="comment">// total number of EP in the configuration</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2"> 152</a></span>&#160; uint32_t <a class="code" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">qNextPollTime</a>; <span class="comment">// next poll time</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09"> 153</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a>; <span class="comment">// poll enable flag</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd"> 154</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a>; <span class="comment">//device ready indicator</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3"> 156</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">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="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="class_a_c_m.html#aa5d83ef9d48dab404090e9136522707a">ACM</a>(<a class="code" href="class_u_s_b.html">USB</a> *pusb, <a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> *pasync);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">SetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">GetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ClearCommFeature</a>(uint16_t fid);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">SetLineCoding</a>(<span class="keyword">const</span> <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">GetLineCoding</a>(<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">SetControlLineState</a>(uint8_t state);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">SendBreak</a>(uint16_t duration);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a4deddfbfb1d9010b71096cbfd46b2dfb">GetNotif</a>( uint16_t *bytes_rcvd, uint8_t *dataptr );</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">// Methods for recieving and sending data</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">RcvData</a>(uint16_t *nbytesptr, uint8_t *dataptr);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">SndData</a>(uint16_t nbytes, uint8_t *dataptr);</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="comment">// USBDeviceConfig implementation</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">Poll</a>();</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84"> 181</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84">GetAddress</a>() {</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; };</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7161082e88359738596dd12a706ee286"> 185</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#a7161082e88359738596dd12a706ee286">isReady</a>() {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; };</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// UsbConfigXtracter implementation</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">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> *ep);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif // __CDCACM_H__</span></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_aae0d299b4d6e5ee396ace3f1b4cc7352"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352">CLASS_NOTIFICATION::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00122">cdcacm.h:122</a></div></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694"> 136</a></span>&#160;<span class="preprocessor">#define ACM_MAX_ENDPOINTS 4</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_a_c_m.html"> 138</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_c_m.html">ACM</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011"> 140</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">epDataInIndex</a>; <span class="comment">// DataIn endpoint index</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61"> 141</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">epDataOutIndex</a>; <span class="comment">// DataOUT endpoint index</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307"> 142</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">epInterruptInIndex</a>; <span class="comment">// InterruptIN endpoint index</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7"> 144</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95"> 145</a></span>&#160; <a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> *<a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111"> 146</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39"> 147</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>; <span class="comment">// configuration number</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19"> 148</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">bControlIface</a>; <span class="comment">// Control interface value</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1"> 149</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">bDataIface</a>; <span class="comment">// Data interface value</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93"> 150</a></span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>; <span class="comment">// total number of EP in the configuration</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2"> 151</a></span>&#160; uint32_t <a class="code" href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">qNextPollTime</a>; <span class="comment">// next poll time</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09"> 152</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">bPollEnable</a>; <span class="comment">// poll enable flag</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd"> 153</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a>; <span class="comment">//device ready indicator</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3"> 155</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[<a class="code" href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a>];</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="keywordtype">void</span> <a class="code" href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">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="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_a_c_m.html#aa5d83ef9d48dab404090e9136522707a">ACM</a>(<a class="code" href="class_u_s_b.html">USB</a> *pusb, <a class="code" href="class_c_d_c_async_oper.html">CDCAsyncOper</a> *pasync);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">SetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">GetCommFeature</a>(uint16_t fid, uint8_t nbytes, uint8_t *dataptr);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ClearCommFeature</a>(uint16_t fid);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">SetLineCoding</a>(<span class="keyword">const</span> <a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">GetLineCoding</a>(<a class="code" href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a> *dataptr);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">SetControlLineState</a>(uint8_t state);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">SendBreak</a>(uint16_t duration);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a4deddfbfb1d9010b71096cbfd46b2dfb">GetNotif</a>(uint16_t *bytes_rcvd, uint8_t *dataptr);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Methods for recieving and sending data</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">RcvData</a>(uint16_t *nbytesptr, uint8_t *dataptr);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t <a class="code" href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">SndData</a>(uint16_t nbytes, uint8_t *dataptr);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// USBDeviceConfig implementation</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">Poll</a>();</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84"> 180</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84">GetAddress</a>() {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; };</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_a_c_m.html#a7161082e88359738596dd12a706ee286"> 184</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_a_c_m.html#a7161082e88359738596dd12a706ee286">isReady</a>() {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; };</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// UsbConfigXtracter implementation</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">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> *ep);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;};</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#endif // __CDCACM_H__</span></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_aae0d299b4d6e5ee396ace3f1b4cc7352"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#aae0d299b4d6e5ee396ace3f1b4cc7352">CLASS_NOTIFICATION::wIndex</a></div><div class="ttdeci">uint16_t wIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00121">cdcacm.h:121</a></div></div>
<div class="ttc" id="class_a_c_m_html_aa5d83ef9d48dab404090e9136522707a"><div class="ttname"><a href="class_a_c_m.html#aa5d83ef9d48dab404090e9136522707a">ACM::ACM</a></div><div class="ttdeci">ACM(USB *pusb, CDCAsyncOper *pasync)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00023">cdcacm.cpp:23</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9b32207fdf256e5f8553ba4048b64307"><div class="ttname"><a href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">ACM::epInterruptInIndex</a></div><div class="ttdeci">static const uint8_t epInterruptInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00143">cdcacm.h:143</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7e0bb108012af9a99bb98aefca036d84"><div class="ttname"><a href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84">ACM::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00181">cdcacm.h:181</a></div></div>
<div class="ttc" id="class_a_c_m_html_a0dc940bc4f1bed7525bb768e37e6cb61"><div class="ttname"><a href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">ACM::epDataOutIndex</a></div><div class="ttdeci">static const uint8_t epDataOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00142">cdcacm.h:142</a></div></div>
<div class="ttc" id="class_a_c_m_html_a6701d70ae4734e8a81971d9fb8b085f2"><div class="ttname"><a href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">ACM::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00152">cdcacm.h:152</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9b32207fdf256e5f8553ba4048b64307"><div class="ttname"><a href="class_a_c_m.html#a9b32207fdf256e5f8553ba4048b64307">ACM::epInterruptInIndex</a></div><div class="ttdeci">static const uint8_t epInterruptInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00142">cdcacm.h:142</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7e0bb108012af9a99bb98aefca036d84"><div class="ttname"><a href="class_a_c_m.html#a7e0bb108012af9a99bb98aefca036d84">ACM::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00180">cdcacm.h:180</a></div></div>
<div class="ttc" id="class_a_c_m_html_a0dc940bc4f1bed7525bb768e37e6cb61"><div class="ttname"><a href="class_a_c_m.html#a0dc940bc4f1bed7525bb768e37e6cb61">ACM::epDataOutIndex</a></div><div class="ttdeci">static const uint8_t epDataOutIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00141">cdcacm.h:141</a></div></div>
<div class="ttc" id="class_a_c_m_html_a6701d70ae4734e8a81971d9fb8b085f2"><div class="ttname"><a href="class_a_c_m.html#a6701d70ae4734e8a81971d9fb8b085f2">ACM::qNextPollTime</a></div><div class="ttdeci">uint32_t qNextPollTime</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00151">cdcacm.h:151</a></div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html_ad14985344c9e31a210999dfa0b4ccc42"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html#ad14985344c9e31a210999dfa0b4ccc42">LINE_CODING::bParityType</a></div><div class="ttdeci">uint8_t bParityType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00113">cdcacm.h:113</a></div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html_ae2c35eef8f7e35b5f2a3464225477d3c"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html#ae2c35eef8f7e35b5f2a3464225477d3c">LINE_CODING::bCharFormat</a></div><div class="ttdeci">uint8_t bCharFormat</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00112">cdcacm.h:112</a></div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html_a2c360b6f874f2cf45f95492f9e6c1812"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html#a2c360b6f874f2cf45f95492f9e6c1812">LINE_CODING::bDataBits</a></div><div class="ttdeci">uint8_t bDataBits</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00114">cdcacm.h:114</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a158c134809e776056d50ffada8089e56"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56">CLASS_NOTIFICATION::bNotification</a></div><div class="ttdeci">uint8_t bNotification</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00120">cdcacm.h:120</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5512d9e8c8c59371f16018fe8ce46b19"><div class="ttname"><a href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">ACM::bControlIface</a></div><div class="ttdeci">uint8_t bControlIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00149">cdcacm.h:149</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_ab55dc65ad3f5b47da89beeaf7c03b4bc"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc">CLASS_NOTIFICATION::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00121">cdcacm.h:121</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a158c134809e776056d50ffada8089e56"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a158c134809e776056d50ffada8089e56">CLASS_NOTIFICATION::bNotification</a></div><div class="ttdeci">uint8_t bNotification</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00119">cdcacm.h:119</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5512d9e8c8c59371f16018fe8ce46b19"><div class="ttname"><a href="class_a_c_m.html#a5512d9e8c8c59371f16018fe8ce46b19">ACM::bControlIface</a></div><div class="ttdeci">uint8_t bControlIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00148">cdcacm.h:148</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_ab55dc65ad3f5b47da89beeaf7c03b4bc"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ab55dc65ad3f5b47da89beeaf7c03b4bc">CLASS_NOTIFICATION::wValue</a></div><div class="ttdeci">uint16_t wValue</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00120">cdcacm.h:120</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00154">cdcacm.h:154</a></div></div>
<div class="ttc" id="class_a_c_m_html_a720b72b524e03da8f17c045e0d689ba1"><div class="ttname"><a href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">ACM::bDataIface</a></div><div class="ttdeci">uint8_t bDataIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00150">cdcacm.h:150</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00153">cdcacm.h:153</a></div></div>
<div class="ttc" id="class_a_c_m_html_a720b72b524e03da8f17c045e0d689ba1"><div class="ttname"><a href="class_a_c_m.html#a720b72b524e03da8f17c045e0d689ba1">ACM::bDataIface</a></div><div class="ttdeci">uint8_t bDataIface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00149">cdcacm.h:149</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00144">cdcacm.h:144</a></div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html_a83213f501eef93701807736887fc587c"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html#a83213f501eef93701807736887fc587c">CALL_MGMNT_FUNC_DESCR::bDataInterface</a></div><div class="ttdeci">uint8_t bDataInterface</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00091">cdcacm.h:91</a></div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html_ad36c57f51019212d773c8d1b70b12a77"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html#ad36c57f51019212d773c8d1b70b12a77">CALL_MGMNT_FUNC_DESCR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00088">cdcacm.h:88</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00151">cdcacm.h:151</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00150">cdcacm.h:150</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html">TEL_RINGER_FUNC_DESCR</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00102">cdcacm.h:102</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00156">cdcacm.h:156</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00155">cdcacm.h:155</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html">CLASS_NOTIFICATION</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00117">cdcacm.h:117</a></div></div>
<div class="ttc" id="struct_a_c_m___f_u_n_c___d_e_s_c_r_html_a46c41dcbc0f3fdc37c0cd411b6b3213e"><div class="ttname"><a href="struct_a_c_m___f_u_n_c___d_e_s_c_r.html#a46c41dcbc0f3fdc37c0cd411b6b3213e">ACM_FUNC_DESCR::bFunctionLength</a></div><div class="ttdeci">uint8_t bFunctionLength</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00095">cdcacm.h:95</a></div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html_af97ef3ee2d908edaabfdde534fa15e7b"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html#af97ef3ee2d908edaabfdde534fa15e7b">CALL_MGMNT_FUNC_DESCR::bDescriptorSubtype</a></div><div class="ttdeci">uint8_t bDescriptorSubtype</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00089">cdcacm.h:89</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html_aca65dc577a0dbc13972da9ab26e25918"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html#aca65dc577a0dbc13972da9ab26e25918">TEL_RINGER_FUNC_DESCR::bNumRingerPatterns</a></div><div class="ttdeci">uint8_t bNumRingerPatterns</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00107">cdcacm.h:107</a></div></div>
<div class="ttc" id="class_a_c_m_html_acd6716c4fc871942fca55e1501dc5b09"><div class="ttname"><a href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">ACM::bPollEnable</a></div><div class="ttdeci">bool bPollEnable</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00153">cdcacm.h:153</a></div></div>
<div class="ttc" id="class_a_c_m_html_acd6716c4fc871942fca55e1501dc5b09"><div class="ttname"><a href="class_a_c_m.html#acd6716c4fc871942fca55e1501dc5b09">ACM::bPollEnable</a></div><div class="ttdeci">bool bPollEnable</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00152">cdcacm.h:152</a></div></div>
<div class="ttc" id="struct_a_c_m___f_u_n_c___d_e_s_c_r_html_a139534f16b74c2a09879fbc44fc84199"><div class="ttname"><a href="struct_a_c_m___f_u_n_c___d_e_s_c_r.html#a139534f16b74c2a09879fbc44fc84199">ACM_FUNC_DESCR::bDescriptorSubtype</a></div><div class="ttdeci">uint8_t bDescriptorSubtype</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00097">cdcacm.h:97</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a32bd53e2663570c57f78a91e2ebfc59c"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c">CLASS_NOTIFICATION::bmState</a></div><div class="ttdeci">uint16_t bmState</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00124">cdcacm.h:124</a></div></div>
<div class="ttc" id="class_a_c_m_html_aa05a65487f5e02bab40ccba1018ee5b6"><div class="ttname"><a href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00334">cdcacm.cpp:334</a></div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="cdcacm_8h_html_aa11e629b02a0cd7d768f796732cb2694"><div class="ttname"><a href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ACM_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00137">cdcacm.h:137</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9d922317b25a7ae086a6fe79984ab8d1"><div class="ttname"><a href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a></div><div class="ttdeci">uint8_t GetLineCoding(LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00322">cdcacm.cpp:322</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a32bd53e2663570c57f78a91e2ebfc59c"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a32bd53e2663570c57f78a91e2ebfc59c">CLASS_NOTIFICATION::bmState</a></div><div class="ttdeci">uint16_t bmState</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00123">cdcacm.h:123</a></div></div>
<div class="ttc" id="class_a_c_m_html_aa05a65487f5e02bab40ccba1018ee5b6"><div class="ttname"><a href="class_a_c_m.html#aa05a65487f5e02bab40ccba1018ee5b6">ACM::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00336">cdcacm.cpp:336</a></div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="cdcacm_8h_html_aa11e629b02a0cd7d768f796732cb2694"><div class="ttname"><a href="cdcacm_8h.html#aa11e629b02a0cd7d768f796732cb2694">ACM_MAX_ENDPOINTS</a></div><div class="ttdeci">#define ACM_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00136">cdcacm.h:136</a></div></div>
<div class="ttc" id="class_a_c_m_html_a9d922317b25a7ae086a6fe79984ab8d1"><div class="ttname"><a href="class_a_c_m.html#a9d922317b25a7ae086a6fe79984ab8d1">ACM::GetLineCoding</a></div><div class="ttdeci">uint8_t GetLineCoding(LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00324">cdcacm.cpp:324</a></div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html">CALL_MGMNT_FUNC_DESCR</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00086">cdcacm.h:86</a></div></div>
<div class="ttc" id="struct_a_c_m___f_u_n_c___d_e_s_c_r_html_a4562e71852b142b483b68deaaa360e6a"><div class="ttname"><a href="struct_a_c_m___f_u_n_c___d_e_s_c_r.html#a4562e71852b142b483b68deaaa360e6a">ACM_FUNC_DESCR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00096">cdcacm.h:96</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html_afdbb7ff1b60803569e26718685da9196"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html#afdbb7ff1b60803569e26718685da9196">TEL_RINGER_FUNC_DESCR::bRingerVolSteps</a></div><div class="ttdeci">uint8_t bRingerVolSteps</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00106">cdcacm.h:106</a></div></div>
<div class="ttc" id="class_a_c_m_html_ac96caeb8d657fa76219872ceb4379923"><div class="ttname"><a href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00302">cdcacm.cpp:302</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79e4da2cae9145d895a6a1211a96fe36"><div class="ttname"><a href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00262">cdcacm.cpp:262</a></div></div>
<div class="ttc" id="class_a_c_m_html_ac96caeb8d657fa76219872ceb4379923"><div class="ttname"><a href="class_a_c_m.html#ac96caeb8d657fa76219872ceb4379923">ACM::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00304">cdcacm.cpp:304</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79e4da2cae9145d895a6a1211a96fe36"><div class="ttname"><a href="class_a_c_m.html#a79e4da2cae9145d895a6a1211a96fe36">ACM::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00264">cdcacm.cpp:264</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="struct_a_c_m___f_u_n_c___d_e_s_c_r_html_a6c54b317cabd68eebd318257ab02abe4"><div class="ttname"><a href="struct_a_c_m___f_u_n_c___d_e_s_c_r.html#a6c54b317cabd68eebd318257ab02abe4">ACM_FUNC_DESCR::bmCapabilities</a></div><div class="ttdeci">uint8_t bmCapabilities</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00098">cdcacm.h:98</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html_aeb3343737ca0bc3b869a6c7046b3d2c2"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html#aeb3343737ca0bc3b869a6c7046b3d2c2">TEL_RINGER_FUNC_DESCR::bDescriptorSubtype</a></div><div class="ttdeci">uint8_t bDescriptorSubtype</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00105">cdcacm.h:105</a></div></div>
<div class="ttc" id="class_a_c_m_html_ad3210651d58c77d3ded4b4b83a9476b7"><div class="ttname"><a href="class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7">ACM::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00047">cdcacm.cpp:47</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_ad268e291db5485ca0869aeb66bc77d3c"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c">CLASS_NOTIFICATION::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00119">cdcacm.h:119</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5917b5098e529fafe67a53e03f1e7011"><div class="ttname"><a href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">ACM::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00141">cdcacm.h:141</a></div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_ad268e291db5485ca0869aeb66bc77d3c"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#ad268e291db5485ca0869aeb66bc77d3c">CLASS_NOTIFICATION::bmRequestType</a></div><div class="ttdeci">uint8_t bmRequestType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00118">cdcacm.h:118</a></div></div>
<div class="ttc" id="class_a_c_m_html_a5917b5098e529fafe67a53e03f1e7011"><div class="ttname"><a href="class_a_c_m.html#a5917b5098e529fafe67a53e03f1e7011">ACM::epDataInIndex</a></div><div class="ttdeci">static const uint8_t epDataInIndex</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00140">cdcacm.h:140</a></div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html">LINE_CODING</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00110">cdcacm.h:110</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7161082e88359738596dd12a706ee286"><div class="ttname"><a href="class_a_c_m.html#a7161082e88359738596dd12a706ee286">ACM::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00185">cdcacm.h:185</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79eb8706c7f1432593fb2f2eee0da504"><div class="ttname"><a href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a></div><div class="ttdeci">uint8_t SetLineCoding(const LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00318">cdcacm.cpp:318</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00024">confdescparser.h:24</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7161082e88359738596dd12a706ee286"><div class="ttname"><a href="class_a_c_m.html#a7161082e88359738596dd12a706ee286">ACM::isReady</a></div><div class="ttdeci">virtual bool isReady()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00184">cdcacm.h:184</a></div></div>
<div class="ttc" id="class_a_c_m_html_a79eb8706c7f1432593fb2f2eee0da504"><div class="ttname"><a href="class_a_c_m.html#a79eb8706c7f1432593fb2f2eee0da504">ACM::SetLineCoding</a></div><div class="ttdeci">uint8_t SetLineCoding(const LINE_CODING *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00320">cdcacm.cpp:320</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00023">confdescparser.h:23</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html_afac33a06771f8b063a8330849cb19386"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html#afac33a06771f8b063a8330849cb19386">TEL_RINGER_FUNC_DESCR::bFunctionLength</a></div><div class="ttdeci">uint8_t bFunctionLength</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00103">cdcacm.h:103</a></div></div>
<div class="ttc" id="cdcacm_8h_html_a01d7daaa4bdcff9f84f1a49206933cb2"><div class="ttname"><a href="cdcacm_8h.html#a01d7daaa4bdcff9f84f1a49206933cb2">TEL_CALL_STATE_REP_CPBL_FUNC_DESCR</a></div><div class="ttdeci">struct ACM_FUNC_DESCR TEL_CALL_STATE_REP_CPBL_FUNC_DESCR</div></div>
<div class="ttc" id="class_a_c_m_html_af5b411a7ccc82bd77a7c5cfba6cd9a86"><div class="ttname"><a href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00222">cdcacm.cpp:222</a></div></div>
<div class="ttc" id="class_a_c_m_html_a2a618cbff52737740e76977db557ddff"><div class="ttname"><a href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a></div><div class="ttdeci">uint8_t SendBreak(uint16_t duration)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00330">cdcacm.cpp:330</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a7933669f6b6379d7ee0605f50422cbe2"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2">CLASS_NOTIFICATION::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00123">cdcacm.h:123</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00129">cdcacm.h:129</a></div></div>
<div class="ttc" id="class_a_c_m_html_af5b411a7ccc82bd77a7c5cfba6cd9a86"><div class="ttname"><a href="class_a_c_m.html#af5b411a7ccc82bd77a7c5cfba6cd9a86">ACM::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00224">cdcacm.cpp:224</a></div></div>
<div class="ttc" id="class_a_c_m_html_a2a618cbff52737740e76977db557ddff"><div class="ttname"><a href="class_a_c_m.html#a2a618cbff52737740e76977db557ddff">ACM::SendBreak</a></div><div class="ttdeci">uint8_t SendBreak(uint16_t duration)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00332">cdcacm.cpp:332</a></div></div>
<div class="ttc" id="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n_html_a7933669f6b6379d7ee0605f50422cbe2"><div class="ttname"><a href="struct_c_l_a_s_s___n_o_t_i_f_i_c_a_t_i_o_n.html#a7933669f6b6379d7ee0605f50422cbe2">CLASS_NOTIFICATION::wLength</a></div><div class="ttdeci">uint16_t wLength</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00122">cdcacm.h:122</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00128">cdcacm.h:128</a></div></div>
<div class="ttc" id="class_a_c_m_html_a4deddfbfb1d9010b71096cbfd46b2dfb"><div class="ttname"><a href="class_a_c_m.html#a4deddfbfb1d9010b71096cbfd46b2dfb">ACM::GetNotif</a></div><div class="ttdeci">uint8_t GetNotif(uint16_t *bytes_rcvd, uint8_t *dataptr)</div></div>
<div class="ttc" id="struct_l_i_n_e___c_o_d_i_n_g_html_ae9fd7d7247b4c50df89a6dd5ed955073"><div class="ttname"><a href="struct_l_i_n_e___c_o_d_i_n_g.html#ae9fd7d7247b4c50df89a6dd5ed955073">LINE_CODING::dwDTERate</a></div><div class="ttdeci">uint32_t dwDTERate</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00111">cdcacm.h:111</a></div></div>
<div class="ttc" id="class_a_c_m_html_a18208672a707391863b8abdc6714c825"><div class="ttname"><a href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a></div><div class="ttdeci">uint8_t GetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00310">cdcacm.cpp:310</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00249">cdcacm.cpp:249</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00148">cdcacm.h:148</a></div></div>
<div class="ttc" id="class_a_c_m_html_a18208672a707391863b8abdc6714c825"><div class="ttname"><a href="class_a_c_m.html#a18208672a707391863b8abdc6714c825">ACM::GetCommFeature</a></div><div class="ttdeci">uint8_t GetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00312">cdcacm.cpp:312</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00251">cdcacm.cpp:251</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="cdcacm_8h_html_ad377d3305b15e93acb1e0799ee7c3972"><div class="ttname"><a href="cdcacm_8h.html#ad377d3305b15e93acb1e0799ee7c3972">TEL_OPER_MODES_FUNC_DESCR</a></div><div class="ttdeci">struct ACM_FUNC_DESCR TEL_OPER_MODES_FUNC_DESCR</div></div>
<div class="ttc" id="class_c_d_c_async_oper_html_a899353c3cbf83d7f874d11e5d9db4722"><div class="ttname"><a href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">CDCAsyncOper::OnInit</a></div><div class="ttdeci">virtual uint8_t OnInit(ACM *pacm)=0</div></div>
<div class="ttc" id="struct_a_c_m___f_u_n_c___d_e_s_c_r_html"><div class="ttname"><a href="struct_a_c_m___f_u_n_c___d_e_s_c_r.html">ACM_FUNC_DESCR</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00094">cdcacm.h:94</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00139">cdcacm.h:139</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00138">cdcacm.h:138</a></div></div>
<div class="ttc" id="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r_html_ad20f29394df0ec88cd151fa9a5a22579"><div class="ttname"><a href="struct_t_e_l___r_i_n_g_e_r___f_u_n_c___d_e_s_c_r.html#ad20f29394df0ec88cd151fa9a5a22579">TEL_RINGER_FUNC_DESCR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00104">cdcacm.h:104</a></div></div>
<div class="ttc" id="class_a_c_m_html_af2e08e5f03f17ed039985147a7129bbd"><div class="ttname"><a href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a></div><div class="ttdeci">uint8_t SetControlLineState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00326">cdcacm.cpp:326</a></div></div>
<div class="ttc" id="class_a_c_m_html_a62c91ac62e8e3bf66bc3940d5b934c10"><div class="ttname"><a href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a></div><div class="ttdeci">uint8_t SetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00306">cdcacm.cpp:306</a></div></div>
<div class="ttc" id="class_a_c_m_html_a74a3484a0f524ddf0e228c17addcebdf"><div class="ttname"><a href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a></div><div class="ttdeci">uint8_t ClearCommFeature(uint16_t fid)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00314">cdcacm.cpp:314</a></div></div>
<div class="ttc" id="class_a_c_m_html_af2e08e5f03f17ed039985147a7129bbd"><div class="ttname"><a href="class_a_c_m.html#af2e08e5f03f17ed039985147a7129bbd">ACM::SetControlLineState</a></div><div class="ttdeci">uint8_t SetControlLineState(uint8_t state)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00328">cdcacm.cpp:328</a></div></div>
<div class="ttc" id="class_a_c_m_html_a62c91ac62e8e3bf66bc3940d5b934c10"><div class="ttname"><a href="class_a_c_m.html#a62c91ac62e8e3bf66bc3940d5b934c10">ACM::SetCommFeature</a></div><div class="ttdeci">uint8_t SetCommFeature(uint16_t fid, uint8_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00308">cdcacm.cpp:308</a></div></div>
<div class="ttc" id="class_a_c_m_html_a74a3484a0f524ddf0e228c17addcebdf"><div class="ttname"><a href="class_a_c_m.html#a74a3484a0f524ddf0e228c17addcebdf">ACM::ClearCommFeature</a></div><div class="ttdeci">uint8_t ClearCommFeature(uint16_t fid)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00316">cdcacm.cpp:316</a></div></div>
<div class="ttc" id="cdcacm_8h_html_aee9cef95b49c643abc3269666b62aa1b"><div class="ttname"><a href="cdcacm_8h.html#aee9cef95b49c643abc3269666b62aa1b">DLM_FUNC_DESCR</a></div><div class="ttdeci">struct ACM_FUNC_DESCR DLM_FUNC_DESCR</div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html_ae5ab7e23e6f5268f042b1cec3986867a"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html#ae5ab7e23e6f5268f042b1cec3986867a">CALL_MGMNT_FUNC_DESCR::bFunctionLength</a></div><div class="ttdeci">uint8_t bFunctionLength</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00087">cdcacm.h:87</a></div></div>
<div class="ttc" id="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r_html_a76161d5fa6c12239aad097f5010825c2"><div class="ttname"><a href="struct_c_a_l_l___m_g_m_n_t___f_u_n_c___d_e_s_c_r.html#a76161d5fa6c12239aad097f5010825c2">CALL_MGMNT_FUNC_DESCR::bmCapabilities</a></div><div class="ttdeci">uint8_t bmCapabilities</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00090">cdcacm.h:90</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7f455b7a649522c29f2e63d668b0ccca"><div class="ttname"><a href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00298">cdcacm.cpp:298</a></div></div>
<div class="ttc" id="class_a_c_m_html_a7f455b7a649522c29f2e63d668b0ccca"><div class="ttname"><a href="class_a_c_m.html#a7f455b7a649522c29f2e63d668b0ccca">ACM::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00300">cdcacm.cpp:300</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcftdi.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for cdcftdi.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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcftdi.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;bAddress(0),</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;bNumEP(1),</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;wFTDIType(0) {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; <a class="code" href="cdcftdi_8h.html#a9d25344c78c7608f2e49de9767abd0d9">FTDI_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="cdcftdi_8h.html#a9d25344c78c7608f2e49de9767abd0d9">FTDI_MAX_ENDPOINTS</a>; i++) {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; epInfo[i].<a class="code" href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">epAddr</a> = 0;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; epInfo[i].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (i) ? 0 : 8;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; epInfo[i].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">//if (!i)</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; epInfo[i].<a class="code" href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">bmNakPower</a> = <a class="code" href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> (pUsb)</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(pUsb)</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; pUsb-&gt;<a class="code" href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">RegisterDeviceClass</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
@ -133,69 +133,69 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">const</span> uint8_t constBufSize = <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>);</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; uint8_t buf[constBufSize];</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">//uint8_t len = 0;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">//uint16_t cd_len = 0;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">//uint8_t num_of_intf; // number of interfaces</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = pUsb-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;FTDI Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span> (bAddress)</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<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="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = epInfo;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</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>*)buf)-&gt;idVendor != <a class="code" href="cdcftdi_8h.html#a4462aa466c5ff32a8106849d347e9b24">FTDI_VID</a> || ((<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>*)buf)-&gt;idProduct != <a class="code" href="cdcftdi_8h.html#a38bbee602455b866024aa7a03c6cefb7">FTDI_PID</a>)</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">//uint8_t len = 0;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">//uint16_t cd_len = 0;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">//uint8_t num_of_intf; // number of interfaces</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</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 = pUsb-&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;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;FTDI Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(bAddress)</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</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="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</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; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = epInfo;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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>), buf);</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">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ae3c7088fe6f7b521132d8f2b95f958bc">idVendor</a> != <a class="code" href="cdcftdi_8h.html#a4462aa466c5ff32a8106849d347e9b24">FTDI_VID</a> || udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#adaec05748124a104c3d49008433719ba">idProduct</a> != <a class="code" href="cdcftdi_8h.html#a38bbee602455b866024aa7a03c6cefb7">FTDI_PID</a>)</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</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">// Save type of FTDI chip</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; wFTDIType = ((<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>*)buf)-&gt;bcdDevice;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; wFTDIType = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#aa4e565c598b6605cbcfe8cab66f99e65">bcdDevice</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; bAddress = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (!bAddress)</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(!bAddress)</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// Extract Max Packet Size from the device descriptor</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; epInfo[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; epInfo[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">bMaxPacketSize0</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, bAddress);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</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="l00109"></a><span class="lineno"> 109</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(bAddress);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; bAddress = 0;</div>
@ -209,40 +209,40 @@ 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"> 119</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(bAddress);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; num_of_conf = ((<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>*)buf)-&gt;bNumConfigurations;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; num_of_conf = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">bNumConfigurations</a>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(bAddress, 1, epInfo);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NC:&quot;</span>, num_of_conf);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_hex_dumper.html">HexDumper&lt;USBReadParser, uint16_t, uint16_t&gt;</a> HexDump;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser &lt; 0xFF, 0xFF, 0xFF, CP_MASK_COMPARE_ALL&gt;</a> confDescrParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(bAddress, 0, i, &amp;HexDump);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(bAddress, 0, i, &amp;confDescrParser);</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="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</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="keywordflow">if</span> (bNumEP &gt; 1)</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(bNumEP &gt; 1)</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; } <span class="comment">// for</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="keywordflow">if</span> (bNumEP &lt; 2)</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(bNumEP &lt; 2)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NumEP:&quot;</span>, bNumEP);</div>
@ -255,12 +255,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; rcode = pUsb-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(bAddress, 0, bConfNum);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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; rcode = pAsync-&gt;<a class="code" href="class_f_t_d_i_async_oper.html#ae9178132b564edd5f75b65d6943aa400">OnInit</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">goto</span> FailOnInit;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;FTDI configured\r\n&quot;</span>);</div>
@ -295,183 +295,184 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;FailOnInit:</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;OnInit:&quot;</span>);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;Fail:</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#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_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">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"><a class="line" href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109"> 217</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::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="l00218"></a><span class="lineno"> 218</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Conf.Val&quot;</span>), conf);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Iface Num&quot;</span>), iface);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Alt.Set&quot;</span>), alt);</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; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">Release</a>();</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109"> 215</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::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="l00216"></a><span class="lineno"> 216</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Conf.Val&quot;</span>), conf);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Iface Num&quot;</span>), iface);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; ErrorMessage&lt;uint8_t &gt; (PSTR(<span class="stringliteral">&quot;Alt.Set&quot;</span>), alt);</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; bConfNum = conf;</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; bConfNum = conf;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint8_t index;</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; uint8_t index;</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="keywordflow">if</span> ((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x03) == 3 &amp;&amp; (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)</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; index = epInterruptInIndex;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> ((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2)</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</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) ? epDataInIndex : epDataOutIndex;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; epInfo[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="l00236"></a><span class="lineno"> 236</span>&#160; epInfo[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="l00237"></a><span class="lineno"> 237</span>&#160; epInfo[index].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 0;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x03) == 3 &amp;&amp; (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)</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; index = epInterruptInIndex;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>((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#a8ee7f1bafac335258c6e742969387f57">bmAttributes</a> &amp; 0x02) == 2)</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</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) ? epDataInIndex : epDataOutIndex;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Fill in the endpoint info structure</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; epInfo[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="l00234"></a><span class="lineno"> 234</span>&#160; epInfo[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="l00235"></a><span class="lineno"> 235</span>&#160; epInfo[index].<a class="code" href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">epAttribs</a> = 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; bNumEP++;</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; bNumEP++;</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; PrintEndpointDescriptor(pep);</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;</div>
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f"> 244</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a>() {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; pUsb-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(bAddress);</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; bAddress = 0;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; bNumEP = 1;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; qNextPollTime = 0;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> 0;</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"><a class="line" href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd"> 254</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a>() {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; uint8_t rcode = 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; <span class="comment">//if (!bPollEnable)</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// return 0;</span></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="comment">//if (qNextPollTime &lt;= millis())</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// USB_HOST_SERIAL.println(bAddress, HEX);</span></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">// qNextPollTime = millis() + 100;</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">//}</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> rcode;</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;</div>
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf"> 269</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a>(uint32_t baud) {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint16_t baud_value, baud_index = 0;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; uint32_t divisor3;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; PrintEndpointDescriptor(pep);</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;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f"> 242</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a>() {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; pUsb-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>().<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(bAddress);</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; bAddress = 0;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; bNumEP = 1;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; qNextPollTime = 0;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; bPollEnable = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd"> 252</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a>() {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; uint8_t rcode = 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; <span class="comment">//if (!bPollEnable)</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// return 0;</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">//if (qNextPollTime &lt;= millis())</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">//{</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// USB_HOST_SERIAL.println(bAddress, HEX);</span></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="comment">// qNextPollTime = millis() + 100;</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">//}</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf"> 267</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a>(uint32_t baud) {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; uint16_t baud_value, baud_index = 0;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uint32_t divisor3;</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; divisor3 = 48000000 / 2 / baud; <span class="comment">// divisor shifted 3 bits to the left</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; divisor3 = 48000000 / 2 / baud; <span class="comment">// divisor shifted 3 bits to the left</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (wFTDIType == <a class="code" href="cdcftdi_8h.html#a15e9dfb0c839422b73f378a35a22cd75">FT232AM</a>) {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> ((divisor3 &amp; 0x7) == 7)</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; divisor3++; <span class="comment">// round x.7/8 up to x+1</span></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; baud_value = divisor3 &gt;&gt; 3;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; divisor3 &amp;= 0x7;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span> (divisor3 == 1) baud_value |= 0xc000;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 0.125</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (divisor3 &gt;= 4) baud_value |= 0x4000;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 0.5</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (divisor3 != 0) baud_value |= 0x8000; <span class="comment">// 0.25</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (baud_value == 1) baud_value = 0; <span class="comment">/* special case for maximum baud rate */</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> divfrac [8] = {0, 3, 2, 0, 1, 1, 2, 3};</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> divindex[8] = {0, 0, 0, 1, 0, 1, 1, 1};</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; baud_value = divisor3 &gt;&gt; 3;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; baud_value |= divfrac [divisor3 &amp; 0x7] &lt;&lt; 14;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; baud_index = divindex[divisor3 &amp; 0x7];</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">/* Deal with special cases for highest baud rates. */</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (baud_value == 1) baud_value = 0;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 1.0</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (baud_value == 0x4001) baud_value = 1; <span class="comment">// 1.5</span></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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;baud_value:&quot;</span>, baud_value);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;baud_index:&quot;</span>, baud_index);</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#aeb562ba85606fa0e08fc188705098f0d">FTDI_SIO_SET_BAUD_RATE</a>, baud_value &amp; 0xff, baud_value &gt;&gt; 8, baud_index, 0, 0, NULL, NULL);</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;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56"> 306</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a>(uint16_t signal) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#a0a5515eba4af8c37b71db51de289b3b4">FTDI_SIO_MODEM_CTRL</a>, signal &amp; 0xff, signal &gt;&gt; 8, 0, 0, 0, NULL, NULL);</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;</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636"> 310</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a>(uint8_t protocol, uint8_t xon, uint8_t xoff) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#abdb21a829e0aca82178834602e34be7f">FTDI_SIO_SET_FLOW_CTRL</a>, xon, xoff, protocol &lt;&lt; 8, 0, 0, NULL, NULL);</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"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71"> 314</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a>(uint16_t databm) {</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#ac7603bf715c4b1281f8e5907d0a61e0f">FTDI_SIO_SET_DATA</a>, databm &amp; 0xff, databm &gt;&gt; 8, 0, 0, 0, NULL, NULL);</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"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434"> 318</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(bAddress, epInfo[epDataInIndex].epAddr, bytes_rcvd, dataptr);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</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"><a class="line" href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240"> 322</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(bAddress, epInfo[epDataOutIndex].epAddr, nbytes, dataptr);</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"> 326</span>&#160;<span class="keywordtype">void</span> FTDI::PrintEndpointDescriptor(<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="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"> 328</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="l00329"></a><span class="lineno"> 329</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="l00330"></a><span class="lineno"> 330</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="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"> 341</span>&#160;}</div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(wFTDIType == <a class="code" href="cdcftdi_8h.html#a15e9dfb0c839422b73f378a35a22cd75">FT232AM</a>) {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>((divisor3 &amp; 0x7) == 7)</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; divisor3++; <span class="comment">// round x.7/8 up to x+1</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"> 277</span>&#160; baud_value = divisor3 &gt;&gt; 3;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; divisor3 &amp;= 0x7;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(divisor3 == 1) baud_value |= 0xc000;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 0.125</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(divisor3 &gt;= 4) baud_value |= 0x4000;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 0.5</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(divisor3 != 0) baud_value |= 0x8000; <span class="comment">// 0.25</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(baud_value == 1) baud_value = 0; <span class="comment">/* special case for maximum baud rate */</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> divfrac [8] = {0, 3, 2, 0, 1, 1, 2, 3};</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> divindex[8] = {0, 0, 0, 1, 0, 1, 1, 1};</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; baud_value = divisor3 &gt;&gt; 3;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; baud_value |= divfrac [divisor3 &amp; 0x7] &lt;&lt; 14;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; baud_index = divindex[divisor3 &amp; 0x7];</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">/* Deal with special cases for highest baud rates. */</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span>(baud_value == 1) baud_value = 0;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span> <span class="comment">// 1.0</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(baud_value == 0x4001) baud_value = 1; <span class="comment">// 1.5</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; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;baud_value:&quot;</span>, baud_value);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;baud_index:&quot;</span>, baud_index);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#aeb562ba85606fa0e08fc188705098f0d">FTDI_SIO_SET_BAUD_RATE</a>, baud_value &amp; 0xff, baud_value &gt;&gt; 8, baud_index, 0, 0, NULL, NULL);</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;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56"> 304</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a>(uint16_t signal) {</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#a0a5515eba4af8c37b71db51de289b3b4">FTDI_SIO_MODEM_CTRL</a>, signal &amp; 0xff, signal &gt;&gt; 8, 0, 0, 0, NULL, NULL);</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"><a class="line" href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636"> 308</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a>(uint8_t protocol, uint8_t xon, uint8_t xoff) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#abdb21a829e0aca82178834602e34be7f">FTDI_SIO_SET_FLOW_CTRL</a>, xon, xoff, protocol &lt;&lt; 8, 0, 0, NULL, NULL);</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="line" href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71"> 312</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a>(uint16_t databm) {</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">ctrlReq</a>(bAddress, 0, <a class="code" href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a>, <a class="code" href="cdcftdi_8h.html#ac7603bf715c4b1281f8e5907d0a61e0f">FTDI_SIO_SET_DATA</a>, databm &amp; 0xff, databm &gt;&gt; 8, 0, 0, 0, NULL, NULL);</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"> 315</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434"> 316</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a>(uint16_t *bytes_rcvd, uint8_t *dataptr) {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">inTransfer</a>(bAddress, epInfo[epDataInIndex].epAddr, bytes_rcvd, dataptr);</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"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240"> 320</a></span>&#160;uint8_t <a class="code" href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a>(uint16_t nbytes, uint8_t *dataptr) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> pUsb-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(bAddress, epInfo[epDataOutIndex].epAddr, nbytes, dataptr);</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"> 324</span>&#160;<span class="keywordtype">void</span> FTDI::PrintEndpointDescriptor(<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="l00325"></a><span class="lineno"> 325</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="l00326"></a><span class="lineno"> 326</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="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"> 328</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="l00329"></a><span class="lineno"> 329</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="l00330"></a><span class="lineno"> 330</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="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"> 337</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="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</span>&#160;}</div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a92ff48c614d1c236c34d7b2dc4d28ad2"><div class="ttname"><a href="cdcftdi_8h.html#a92ff48c614d1c236c34d7b2dc4d28ad2">bmREQ_FTDI_OUT</a></div><div class="ttdeci">#define bmREQ_FTDI_OUT</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00022">cdcftdi.h:22</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a3e3f771b9f2a99fcedf7ed665b597109"><div class="ttname"><a href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00217">cdcftdi.cpp:217</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a3e3f771b9f2a99fcedf7ed665b597109"><div class="ttname"><a href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00215">cdcftdi.cpp:215</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_acb8efdc33bd503563018b7eee577aecf"><div class="ttname"><a href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a></div><div class="ttdeci">uint8_t SetBaudRate(uint32_t baud)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00269">cdcftdi.cpp:269</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_acb8efdc33bd503563018b7eee577aecf"><div class="ttname"><a href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a></div><div class="ttdeci">uint8_t SetBaudRate(uint32_t baud)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00267">cdcftdi.cpp:267</a></div></div>
<div class="ttc" id="struct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00042">address.h:42</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a15e9dfb0c839422b73f378a35a22cd75"><div class="ttname"><a href="cdcftdi_8h.html#a15e9dfb0c839422b73f378a35a22cd75">FT232AM</a></div><div class="ttdeci">#define FT232AM</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00031">cdcftdi.h:31</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a86130f30e67e934346c3c7faf5ee6c56"><div class="ttname"><a href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a></div><div class="ttdeci">uint8_t SetModemControl(uint16_t control)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00306">cdcftdi.cpp:306</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_aa4e565c598b6605cbcfe8cab66f99e65"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#aa4e565c598b6605cbcfe8cab66f99e65">USB_DEVICE_DESCRIPTOR::bcdDevice</a></div><div class="ttdeci">uint16_t bcdDevice</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00108">usb_ch9.h:108</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a86130f30e67e934346c3c7faf5ee6c56"><div class="ttname"><a href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a></div><div class="ttdeci">uint8_t SetModemControl(uint16_t control)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00304">cdcftdi.cpp:304</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ae3c7088fe6f7b521132d8f2b95f958bc"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ae3c7088fe6f7b521132d8f2b95f958bc">USB_DEVICE_DESCRIPTOR::idVendor</a></div><div class="ttdeci">uint16_t idVendor</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00106">usb_ch9.h:106</a></div></div>
<div class="ttc" id="class_hex_dumper_html"><div class="ttname"><a href="class_hex_dumper.html">HexDumper</a></div><div class="ttdef"><b>Definition:</b> <a href="hexdump_8h_source.html#l00025">hexdump.h:25</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_aeb562ba85606fa0e08fc188705098f0d"><div class="ttname"><a href="cdcftdi_8h.html#aeb562ba85606fa0e08fc188705098f0d">FTDI_SIO_SET_BAUD_RATE</a></div><div class="ttdeci">#define FTDI_SIO_SET_BAUD_RATE</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00040">cdcftdi.h:40</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a95cd9669dee9cab375a7c5e62284a01b"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">USB_ENDPOINT_DESCRIPTOR::bInterval</a></div><div class="ttdeci">uint8_t bInterval</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00147">usb_ch9.h:147</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a55263a9cc9dc17abc37226ac8a471ad0"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a55263a9cc9dc17abc37226ac8a471ad0">USB_ENDPOINT_DESCRIPTOR::bLength</a></div><div class="ttdeci">uint8_t bLength</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00142">usb_ch9.h:142</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_a92d96e9016c96043dccf56872d13a628"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">USB_DEVICE_DESCRIPTOR::bMaxPacketSize0</a></div><div class="ttdeci">uint8_t bMaxPacketSize0</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00105">usb_ch9.h:105</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ae517a5435ada4145998aa7b07e78adb3"><div class="ttname"><a href="class_f_t_d_i.html#ae517a5435ada4145998aa7b07e78adb3">FTDI::FTDI</a></div><div class="ttdeci">FTDI(USB *pusb, FTDIAsyncOper *pasync)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00023">cdcftdi.cpp:23</a></div></div>
<div class="ttc" id="cdcftdi_8h_html"><div class="ttname"><a href="cdcftdi_8h.html">cdcftdi.h</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_ac7603bf715c4b1281f8e5907d0a61e0f"><div class="ttname"><a href="cdcftdi_8h.html#ac7603bf715c4b1281f8e5907d0a61e0f">FTDI_SIO_SET_DATA</a></div><div class="ttdeci">#define FTDI_SIO_SET_DATA</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00041">cdcftdi.h:41</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a7c107efeff2d46cb711cadd0a6c31636"><div class="ttname"><a href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a></div><div class="ttdeci">uint8_t SetFlowControl(uint8_t protocol, uint8_t xon=0x11, uint8_t xoff=0x13)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00310">cdcftdi.cpp:310</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a7c107efeff2d46cb711cadd0a6c31636"><div class="ttname"><a href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a></div><div class="ttdeci">uint8_t SetFlowControl(uint8_t protocol, uint8_t xon=0x11, uint8_t xoff=0x13)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00308">cdcftdi.cpp:308</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_f_t_d_i_async_oper_html"><div class="ttname"><a href="class_f_t_d_i_async_oper.html">FTDIAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00079">cdcftdi.h:79</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aa367ae72fbfda931cae8ec751e9dc434"><div class="ttname"><a href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *bytes_rcvd, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00318">cdcftdi.cpp:318</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aa367ae72fbfda931cae8ec751e9dc434"><div class="ttname"><a href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *bytes_rcvd, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00316">cdcftdi.cpp:316</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="struct_ep_info_html_a1dea928517c961235eef7b0876e69f10"><div class="ttname"><a href="struct_ep_info.html#a1dea928517c961235eef7b0876e69f10">EpInfo::epAttribs</a></div><div class="ttdeci">uint8_t epAttribs</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00037">address.h:37</a></div></div>
<div class="ttc" id="class_u_s_b_html_a636695a5c3d35cd6b9e31c54edfacd7c"><div class="ttname"><a href="class_u_s_b.html#a636695a5c3d35cd6b9e31c54edfacd7c">USB::ctrlReq</a></div><div class="ttdeci">uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00126">Usb.cpp:126</a></div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="message_8h_html_a27117e124c5d66d5512fe8d494fe6338"><div class="ttname"><a href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a></div><div class="ttdeci">#define Notify(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00044">message.h:44</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a8ee7f1bafac335258c6e742969387f57"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a8ee7f1bafac335258c6e742969387f57">USB_ENDPOINT_DESCRIPTOR::bmAttributes</a></div><div class="ttdeci">uint8_t bmAttributes</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00145">usb_ch9.h:145</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00039">confdescparser.h:39</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00061">macros.h:61</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00038">confdescparser.h:38</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00067">macros.h:67</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="message_8h_html_a38aabfb47a8bf743b0532e356c39faaf"><div class="ttname"><a href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a></div><div class="ttdeci">#define NotifyFailGetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00052">message.h:52</a></div></div>
<div class="ttc" id="struct_ep_info_html_a9f92be74c75c037b39e2cae1eb49b89b"><div class="ttname"><a href="struct_ep_info.html#a9f92be74c75c037b39e2cae1eb49b89b">EpInfo::epAddr</a></div><div class="ttdeci">uint8_t epAddr</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00033">address.h:33</a></div></div>
<div class="ttc" id="address_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00027">address.h:27</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a5f383dd8eb114563194da011f1d613fd"><div class="ttname"><a href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00254">cdcftdi.cpp:254</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a5f383dd8eb114563194da011f1d613fd"><div class="ttname"><a href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00252">cdcftdi.cpp:252</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00290">Usb.cpp:290</a></div></div>
<div class="ttc" id="class_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00292">Usb.cpp:292</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af34105fa6bd0029d9c6b73d85f7853c6"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af34105fa6bd0029d9c6b73d85f7853c6">USB_ENDPOINT_DESCRIPTOR::wMaxPacketSize</a></div><div class="ttdeci">uint16_t wMaxPacketSize</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00146">usb_ch9.h:146</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a38bbee602455b866024aa7a03c6cefb7"><div class="ttname"><a href="cdcftdi_8h.html#a38bbee602455b866024aa7a03c6cefb7">FTDI_PID</a></div><div class="ttdeci">#define FTDI_PID</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00029">cdcftdi.h:29</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a2d40115414dadfee8c284e0f5d397621"><div class="ttname"><a href="class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621">FTDI::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00041">cdcftdi.cpp:41</a></div></div>
@ -479,25 +480,27 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a23fbb539d72d10a6cb12efedf7d3457c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a23fbb539d72d10a6cb12efedf7d3457c">USB_ENDPOINT_DESCRIPTOR::bEndpointAddress</a></div><div class="ttdeci">uint8_t bEndpointAddress</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00144">usb_ch9.h:144</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a90309b11a160bad9ceb0b77545b7a240"><div class="ttname"><a href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00322">cdcftdi.cpp:322</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a90309b11a160bad9ceb0b77545b7a240"><div class="ttname"><a href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00320">cdcftdi.cpp:320</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_af39d036ab903a96b9d4d56b879555d6c"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#af39d036ab903a96b9d4d56b879555d6c">USB_ENDPOINT_DESCRIPTOR::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00143">usb_ch9.h:143</a></div></div>
<div class="ttc" id="class_f_t_d_i_async_oper_html_ae9178132b564edd5f75b65d6943aa400"><div class="ttname"><a href="class_f_t_d_i_async_oper.html#ae9178132b564edd5f75b65d6943aa400">FTDIAsyncOper::OnInit</a></div><div class="ttdeci">virtual uint8_t OnInit(FTDI *pftdi)=0</div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a4462aa466c5ff32a8106849d347e9b24"><div class="ttname"><a href="cdcftdi_8h.html#a4462aa466c5ff32a8106849d347e9b24">FTDI_VID</a></div><div class="ttdeci">#define FTDI_VID</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00028">cdcftdi.h:28</a></div></div>
<div class="ttc" id="class_u_s_b_html_ad75d64f648b102fab2bd75e53e1324a4"><div class="ttname"><a href="class_u_s_b.html#ad75d64f648b102fab2bd75e53e1324a4">USB::inTransfer</a></div><div class="ttdeci">uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00206">Usb.cpp:206</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aadee262e2eda31deda790d5d10090b6f"><div class="ttname"><a href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00244">cdcftdi.cpp:244</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aadee262e2eda31deda790d5d10090b6f"><div class="ttname"><a href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00242">cdcftdi.cpp:242</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_adaec05748124a104c3d49008433719ba"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#adaec05748124a104c3d49008433719ba">USB_DEVICE_DESCRIPTOR::idProduct</a></div><div class="ttdeci">uint16_t idProduct</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00107">usb_ch9.h:107</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ab1b8db3992e0dceb2ba86f3bab1e5bca"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">USB_DEVICE_DESCRIPTOR::bNumConfigurations</a></div><div class="ttdeci">uint8_t bNumConfigurations</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00112">usb_ch9.h:112</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a0a5515eba4af8c37b71db51de289b3b4"><div class="ttname"><a href="cdcftdi_8h.html#a0a5515eba4af8c37b71db51de289b3b4">FTDI_SIO_MODEM_CTRL</a></div><div class="ttdeci">#define FTDI_SIO_MODEM_CTRL</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00038">cdcftdi.h:38</a></div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00172">UsbCore.h:172</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3f66bf622590413ef2e1864f93a3e0d2"><div class="ttname"><a href="class_u_s_b.html#a3f66bf622590413ef2e1864f93a3e0d2">USB::RegisterDeviceClass</a></div><div class="ttdeci">uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00196">UsbCore.h:196</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ab7d7c305729fe4bbc746fa0569261a71"><div class="ttname"><a href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a></div><div class="ttdeci">uint8_t SetData(uint16_t databm)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00314">cdcftdi.cpp:314</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ab7d7c305729fe4bbc746fa0569261a71"><div class="ttname"><a href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a></div><div class="ttdeci">uint8_t SetData(uint16_t databm)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00312">cdcftdi.cpp:312</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a9d25344c78c7608f2e49de9767abd0d9"><div class="ttname"><a href="cdcftdi_8h.html#a9d25344c78c7608f2e49de9767abd0d9">FTDI_MAX_ENDPOINTS</a></div><div class="ttdeci">#define FTDI_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00087">cdcftdi.h:87</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00060">macros.h:60</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00065">macros.h:65</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@ -505,7 +508,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcftdi.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -814,7 +814,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcftdi.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -222,34 +222,34 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif // __CDCFTDI_H__</span></div>
<div class="ttc" id="class_f_t_d_i_html_a3e3f771b9f2a99fcedf7ed665b597109"><div class="ttname"><a href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00217">cdcftdi.cpp:217</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_acb8efdc33bd503563018b7eee577aecf"><div class="ttname"><a href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a></div><div class="ttdeci">uint8_t SetBaudRate(uint32_t baud)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00269">cdcftdi.cpp:269</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a86130f30e67e934346c3c7faf5ee6c56"><div class="ttname"><a href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a></div><div class="ttdeci">uint8_t SetModemControl(uint16_t control)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00306">cdcftdi.cpp:306</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a3e3f771b9f2a99fcedf7ed665b597109"><div class="ttname"><a href="class_f_t_d_i.html#a3e3f771b9f2a99fcedf7ed665b597109">FTDI::EndpointXtract</a></div><div class="ttdeci">virtual void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00215">cdcftdi.cpp:215</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_acb8efdc33bd503563018b7eee577aecf"><div class="ttname"><a href="class_f_t_d_i.html#acb8efdc33bd503563018b7eee577aecf">FTDI::SetBaudRate</a></div><div class="ttdeci">uint8_t SetBaudRate(uint32_t baud)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00267">cdcftdi.cpp:267</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a86130f30e67e934346c3c7faf5ee6c56"><div class="ttname"><a href="class_f_t_d_i.html#a86130f30e67e934346c3c7faf5ee6c56">FTDI::SetModemControl</a></div><div class="ttdeci">uint8_t SetModemControl(uint16_t control)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00304">cdcftdi.cpp:304</a></div></div>
<div class="ttc" id="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00141">usb_ch9.h:141</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ae517a5435ada4145998aa7b07e78adb3"><div class="ttname"><a href="class_f_t_d_i.html#ae517a5435ada4145998aa7b07e78adb3">FTDI::FTDI</a></div><div class="ttdeci">FTDI(USB *pusb, FTDIAsyncOper *pasync)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00023">cdcftdi.cpp:23</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a7c107efeff2d46cb711cadd0a6c31636"><div class="ttname"><a href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a></div><div class="ttdeci">uint8_t SetFlowControl(uint8_t protocol, uint8_t xon=0x11, uint8_t xoff=0x13)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00310">cdcftdi.cpp:310</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a7c107efeff2d46cb711cadd0a6c31636"><div class="ttname"><a href="class_f_t_d_i.html#a7c107efeff2d46cb711cadd0a6c31636">FTDI::SetFlowControl</a></div><div class="ttdeci">uint8_t SetFlowControl(uint8_t protocol, uint8_t xon=0x11, uint8_t xoff=0x13)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00308">cdcftdi.cpp:308</a></div></div>
<div class="ttc" id="class_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00105">UsbCore.h:105</a></div></div>
<div class="ttc" id="class_f_t_d_i_async_oper_html"><div class="ttname"><a href="class_f_t_d_i_async_oper.html">FTDIAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00079">cdcftdi.h:79</a></div></div>
<div class="ttc" id="_usb_8h_html"><div class="ttname"><a href="_usb_8h.html">Usb.h</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aa367ae72fbfda931cae8ec751e9dc434"><div class="ttname"><a href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *bytes_rcvd, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00318">cdcftdi.cpp:318</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a5f383dd8eb114563194da011f1d613fd"><div class="ttname"><a href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00254">cdcftdi.cpp:254</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aa367ae72fbfda931cae8ec751e9dc434"><div class="ttname"><a href="class_f_t_d_i.html#aa367ae72fbfda931cae8ec751e9dc434">FTDI::RcvData</a></div><div class="ttdeci">uint8_t RcvData(uint16_t *bytes_rcvd, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00316">cdcftdi.cpp:316</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a5f383dd8eb114563194da011f1d613fd"><div class="ttname"><a href="class_f_t_d_i.html#a5f383dd8eb114563194da011f1d613fd">FTDI::Poll</a></div><div class="ttdeci">virtual uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00252">cdcftdi.cpp:252</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="class_f_t_d_i_html"><div class="ttname"><a href="class_f_t_d_i.html">FTDI</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00089">cdcftdi.h:89</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a2d40115414dadfee8c284e0f5d397621"><div class="ttname"><a href="class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621">FTDI::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00041">cdcftdi.cpp:41</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a90309b11a160bad9ceb0b77545b7a240"><div class="ttname"><a href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00322">cdcftdi.cpp:322</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_a90309b11a160bad9ceb0b77545b7a240"><div class="ttname"><a href="class_f_t_d_i.html#a90309b11a160bad9ceb0b77545b7a240">FTDI::SndData</a></div><div class="ttdeci">uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00320">cdcftdi.cpp:320</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ae224d7ea581e5df3b11416410a679086"><div class="ttname"><a href="class_f_t_d_i.html#ae224d7ea581e5df3b11416410a679086">FTDI::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00125">cdcftdi.h:125</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00024">confdescparser.h:24</a></div></div>
<div class="ttc" id="class_usb_config_xtracter_html"><div class="ttname"><a href="class_usb_config_xtracter.html">UsbConfigXtracter</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00023">confdescparser.h:23</a></div></div>
<div class="ttc" id="class_f_t_d_i_async_oper_html_ae9178132b564edd5f75b65d6943aa400"><div class="ttname"><a href="class_f_t_d_i_async_oper.html#ae9178132b564edd5f75b65d6943aa400">FTDIAsyncOper::OnInit</a></div><div class="ttdeci">virtual uint8_t OnInit(FTDI *pftdi)=0</div></div>
<div class="ttc" id="class_f_t_d_i_html_aadee262e2eda31deda790d5d10090b6f"><div class="ttname"><a href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00244">cdcftdi.cpp:244</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ab7d7c305729fe4bbc746fa0569261a71"><div class="ttname"><a href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a></div><div class="ttdeci">uint8_t SetData(uint16_t databm)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00314">cdcftdi.cpp:314</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_aadee262e2eda31deda790d5d10090b6f"><div class="ttname"><a href="class_f_t_d_i.html#aadee262e2eda31deda790d5d10090b6f">FTDI::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00242">cdcftdi.cpp:242</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_f_t_d_i_html_ab7d7c305729fe4bbc746fa0569261a71"><div class="ttname"><a href="class_f_t_d_i.html#ab7d7c305729fe4bbc746fa0569261a71">FTDI::SetData</a></div><div class="ttdeci">uint8_t SetData(uint16_t databm)</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8cpp_source.html#l00312">cdcftdi.cpp:312</a></div></div>
<div class="ttc" id="cdcftdi_8h_html_a9d25344c78c7608f2e49de9767abd0d9"><div class="ttname"><a href="cdcftdi_8h.html#a9d25344c78c7608f2e49de9767abd0d9">FTDI_MAX_ENDPOINTS</a></div><div class="ttdeci">#define FTDI_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="cdcftdi_8h_source.html#l00087">cdcftdi.h:87</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcprolific.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -104,7 +104,7 @@ Include dependency graph for cdcprolific.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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcprolific.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -116,235 +116,239 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">const</span> uint8_t constBufSize = <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>);</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; uint8_t buf[constBufSize];</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;PL Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</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="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</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>*)buf)-&gt;idVendor != <a class="code" href="cdcprolific_8h.html#ac33a32ea1e6c88a3041b8fd579bb439b">PL_VID</a> &amp;&amp; ((<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>*)buf)-&gt;idProduct != <a class="code" href="cdcprolific_8h.html#a07de3d09679a16223690f65ada967a24">PL_PID</a>)</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Save type of PL chip</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; wPLType = ((<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>*)buf)-&gt;bcdDevice;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</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> (!<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Extract Max Packet Size from the device descriptor</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = (uint8_t)((<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>*)buf)-&gt;bMaxPacketSize0;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Assign new address to the device</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (rcode) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</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="l00088"></a><span class="lineno"> 88</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;setAddr:&quot;</span>, rcode);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Addr:&quot;</span>, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</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="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (!p)</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</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; num_of_conf = ((<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>*)buf)-&gt;bNumConfigurations;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 1, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NC:&quot;</span>, num_of_conf);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="class_hex_dumper.html">HexDumper&lt;USBReadParser, uint16_t, uint16_t&gt;</a> HexDump;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser &lt; 0xFF, 0, 0, CP_MASK_COMPARE_CLASS&gt;</a> confDescrParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;HexDump);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;confDescrParser);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &gt; 1)</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="comment">// for</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &lt; 2)</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Conf:&quot;</span>, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</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; rcode = <a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>-&gt;<a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span> (rcode)</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">goto</span> FailOnInit;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;PL configured\r\n&quot;</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="comment">//bPollEnable = true;</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> 0;</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;FailGetDevDescr:</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;FailOnInit:</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;OnInit:&quot;</span>);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;Fail:</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <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> * udd = <span class="keyword">reinterpret_cast&lt;</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>*<span class="keyword">&gt;</span>(buf);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; uint8_t rcode;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="struct_usb_device.html">UsbDevice</a> *p = NULL;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> *oldep_ptr = NULL;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint8_t num_of_conf; <span class="comment">// number of configurations</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_address_pool.html">AddressPool</a> &amp;addrPool = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">GetAddressPool</a>();</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; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;PL Init\r\n&quot;</span>);</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Get pointer to pseudo device with address 0 assigned</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(0);</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="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</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="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;epinfo\r\n&quot;</span>);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Save old pointer to EP_RECORD of address 0</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; oldep_ptr = p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Temporary assign new pointer to epInfo to p-&gt;epinfo in order to avoid toggle inconsistence</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Get device descriptor</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">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="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Restore p-&gt;epinfo</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">epinfo</a> = oldep_ptr;</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="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">goto</span> FailGetDevDescr;</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>(udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ae3c7088fe6f7b521132d8f2b95f958bc">idVendor</a> != <a class="code" href="cdcprolific_8h.html#ac33a32ea1e6c88a3041b8fd579bb439b">PL_VID</a> &amp;&amp; udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#adaec05748124a104c3d49008433719ba">idProduct</a> != <a class="code" href="cdcprolific_8h.html#a07de3d09679a16223690f65ada967a24">PL_PID</a>)</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Save type of PL chip</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wPLType = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#aa4e565c598b6605cbcfe8cab66f99e65">bcdDevice</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Allocate new address according to device class</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = addrPool.<a class="code" href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AllocAddress</a>(parent, <span class="keyword">false</span>, port);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>)</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Extract Max Packet Size from the device descriptor</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>[0].<a class="code" href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">maxPktSize</a> = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">bMaxPacketSize0</a>;</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">// Assign new address to the device</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">setAddr</a>(0, 0, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</span>&#160; addrPool.<a class="code" href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">FreeAddress</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a> = 0;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;setAddr:&quot;</span>, rcode);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Addr:&quot;</span>, <a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; p = addrPool.<a class="code" href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">GetUsbDevicePtr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(!p)</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; p-&gt;<a class="code" href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">lowspeed</a> = lowspeed;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; num_of_conf = udd-&gt;<a class="code" href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">bNumConfigurations</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 1, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">goto</span> FailSetDevTblEntry;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;NC:&quot;</span>, num_of_conf);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; num_of_conf; i++) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_hex_dumper.html">HexDumper&lt;USBReadParser, uint16_t, uint16_t&gt;</a> HexDump;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_config_desc_parser.html">ConfigDescParser &lt; 0xFF, 0, 0, CP_MASK_COMPARE_CLASS&gt;</a> confDescrParser(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;HexDump);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">getConfDescr</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, i, &amp;confDescrParser);</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="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">goto</span> FailGetConfDescr;</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="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &gt; 1)</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="comment">// for</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a> &lt; 2)</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// Assign epInfo to epinfo pointer</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">setEpInfoEntry</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, <a class="code" href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">bNumEP</a>, <a class="code" href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">epInfo</a>);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a>(<span class="stringliteral">&quot;Conf:&quot;</span>, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Set Configuration Value</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; rcode = <a class="code" href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">setConf</a>(<a class="code" href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">bAddress</a>, 0, <a class="code" href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">bConfNum</a>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">goto</span> FailSetConfDescr;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; rcode = <a class="code" href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">pAsync</a>-&gt;<a class="code" href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">OnInit</a>(<span class="keyword">this</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="keywordflow">if</span>(rcode)</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">goto</span> FailOnInit;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;PL configured\r\n&quot;</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">//bPollEnable = true;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ready</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;FailGetDevDescr:</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a>();</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;FailSetDevTblEntry:</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a>();</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;FailGetConfDescr:</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a>();</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;FailSetConfDescr:</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a>();</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">goto</span> Fail;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;FailOnInit:</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"></span> <a class="code" href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a>(<span class="stringliteral">&quot;OnInit:&quot;</span>);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"></span> <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">//uint8_t PL::Poll()</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">//{</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// uint8_t rcode = 0;</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// //if (!bPollEnable)</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// // return 0;</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// //if (qNextPollTime &lt;= millis())</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// //{</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// // USB_HOST_SERIAL.println(bAddress, HEX);</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// // qNextPollTime = millis() + 100;</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// //}</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// return rcode;</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">//}</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00764">Usb.cpp:764</a></div></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"></span>Fail:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a>(rcode);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"></span> <a class="code" href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">Release</a>();</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> rcode;</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"> 196</span>&#160;<span class="comment">//uint8_t PL::Poll()</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">//{</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// uint8_t rcode = 0;</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// //if (!bPollEnable)</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// // return 0;</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// //if (qNextPollTime &lt;= millis())</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// //{</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// // USB_HOST_SERIAL.println(bAddress, HEX);</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// // qNextPollTime = millis() + 100;</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// //}</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// return rcode;</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">//}</span></div>
<div class="ttc" id="class_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00766">Usb.cpp:766</a></div></div>
<div class="ttc" id="class_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00083">address.h:83</a></div></div>
<div class="ttc" id="struct_usb_device_html_a410d39fb7758157f57794335e990ed02"><div class="ttname"><a href="struct_usb_device.html#a410d39fb7758157f57794335e990ed02">UsbDevice::epinfo</a></div><div class="ttdeci">EpInfo * epinfo</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00076">address.h:76</a></div></div>
<div class="ttc" id="struct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00079">address.h:79</a></div></div>
<div class="ttc" id="_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00067">UsbCore.h:67</a></div></div>
<div class="ttc" id="struct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00075">address.h:75</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_aa4e565c598b6605cbcfe8cab66f99e65"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#aa4e565c598b6605cbcfe8cab66f99e65">USB_DEVICE_DESCRIPTOR::bcdDevice</a></div><div class="ttdeci">uint16_t bcdDevice</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00108">usb_ch9.h:108</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_a07de3d09679a16223690f65ada967a24"><div class="ttname"><a href="cdcprolific_8h.html#a07de3d09679a16223690f65ada967a24">PL_PID</a></div><div class="ttdeci">#define PL_PID</div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00023">cdcprolific.h:23</a></div></div>
<div class="ttc" id="class_p_l2303_html_a23c849fb504c1fe6f46c84d04c0a47cf"><div class="ttname"><a href="class_p_l2303.html#a23c849fb504c1fe6f46c84d04c0a47cf">PL2303::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8cpp_source.html#l00024">cdcprolific.cpp:24</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ae3c7088fe6f7b521132d8f2b95f958bc"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ae3c7088fe6f7b521132d8f2b95f958bc">USB_DEVICE_DESCRIPTOR::idVendor</a></div><div class="ttdeci">uint16_t idVendor</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00106">usb_ch9.h:106</a></div></div>
<div class="ttc" id="class_p_l2303_html_ab3dfad9e451152abbdab4856accbb80c"><div class="ttname"><a href="class_p_l2303.html#ab3dfad9e451152abbdab4856accbb80c">PL2303::PL2303</a></div><div class="ttdeci">PL2303(USB *pusb, CDCAsyncOper *pasync)</div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8cpp_source.html#l00019">cdcprolific.cpp:19</a></div></div>
<div class="ttc" id="class_hex_dumper_html"><div class="ttname"><a href="class_hex_dumper.html">HexDumper</a></div><div class="ttdef"><b>Definition:</b> <a href="hexdump_8h_source.html#l00025">hexdump.h:25</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00154">cdcacm.h:154</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_a92d96e9016c96043dccf56872d13a628"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#a92d96e9016c96043dccf56872d13a628">USB_DEVICE_DESCRIPTOR::bMaxPacketSize0</a></div><div class="ttdeci">uint8_t bMaxPacketSize0</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00105">usb_ch9.h:105</a></div></div>
<div class="ttc" id="class_a_c_m_html_a8ebf4b872b0ed66e93b4ed39f46290fd"><div class="ttname"><a href="class_a_c_m.html#a8ebf4b872b0ed66e93b4ed39f46290fd">ACM::ready</a></div><div class="ttdeci">bool ready</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00153">cdcacm.h:153</a></div></div>
<div class="ttc" id="message_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00055">message.h:55</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00798">Usb.cpp:798</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00151">cdcacm.h:151</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00156">cdcacm.h:156</a></div></div>
<div class="ttc" id="class_a_c_m_html_ae403b0129d7beda921de9d9586b597f7"><div class="ttname"><a href="class_a_c_m.html#ae403b0129d7beda921de9d9586b597f7">ACM::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00144">cdcacm.h:144</a></div></div>
<div class="ttc" id="class_u_s_b_html_a31e2c132ec32ffdde94dff72be87c378"><div class="ttname"><a href="class_u_s_b.html#a31e2c132ec32ffdde94dff72be87c378">USB::setConf</a></div><div class="ttdeci">uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00805">Usb.cpp:805</a></div></div>
<div class="ttc" id="class_a_c_m_html_a058b4d4a088a002fcde4fb2b75e33f93"><div class="ttname"><a href="class_a_c_m.html#a058b4d4a088a002fcde4fb2b75e33f93">ACM::bNumEP</a></div><div class="ttdeci">uint8_t bNumEP</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00150">cdcacm.h:150</a></div></div>
<div class="ttc" id="class_a_c_m_html_a60fb6a365b78fb80a4a9842e364cf1a3"><div class="ttname"><a href="class_a_c_m.html#a60fb6a365b78fb80a4a9842e364cf1a3">ACM::epInfo</a></div><div class="ttdeci">EpInfo epInfo[ACM_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00155">cdcacm.h:155</a></div></div>
<div class="ttc" id="message_8h_html_ae65e02f44cfdc490efd1b33f9882fbbd"><div class="ttname"><a href="message_8h.html#ae65e02f44cfdc490efd1b33f9882fbbd">NotifyFailGetDevDescr</a></div><div class="ttdeci">#define NotifyFailGetDevDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00050">message.h:50</a></div></div>
<div class="ttc" id="class_u_s_b_html_a6c3ba3f7e6dccb450267011ce783d7ea"><div class="ttname"><a href="class_u_s_b.html#a6c3ba3f7e6dccb450267011ce783d7ea">USB::setEpInfoEntry</a></div><div class="ttdeci">uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00064">Usb.cpp:64</a></div></div>
<div class="ttc" id="class_address_pool_html_a15fde13223dcb1da89305ad229763562"><div class="ttname"><a href="class_address_pool.html#a15fde13223dcb1da89305ad229763562">AddressPool::FreeAddress</a></div><div class="ttdeci">virtual void FreeAddress(uint8_t addr)=0</div></div>
<div class="ttc" id="class_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00039">confdescparser.h:39</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00061">macros.h:61</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00793">Usb.cpp:793</a></div></div>
<div class="ttc" id="class_a_c_m_html_a3f160c6c757994f0c30bd5c5f1fb9d95"><div class="ttname"><a href="class_a_c_m.html#a3f160c6c757994f0c30bd5c5f1fb9d95">ACM::pAsync</a></div><div class="ttdeci">CDCAsyncOper * pAsync</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00145">cdcacm.h:145</a></div></div>
<div class="ttc" id="class_config_desc_parser_html"><div class="ttname"><a href="class_config_desc_parser.html">ConfigDescParser</a></div><div class="ttdef"><b>Definition:</b> <a href="confdescparser_8h_source.html#l00038">confdescparser.h:38</a></div></div>
<div class="ttc" id="macros_8h_html_adbe3f00986df48a9254f8bf0992041d3"><div class="ttname"><a href="macros_8h.html#adbe3f00986df48a9254f8bf0992041d3">USBTRACE2</a></div><div class="ttdeci">#define USBTRACE2(s, r)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00067">macros.h:67</a></div></div>
<div class="ttc" id="class_u_s_b_html_a3aea534daed66b5606fa798df7ad3c47"><div class="ttname"><a href="class_u_s_b.html#a3aea534daed66b5606fa798df7ad3c47">USB::setAddr</a></div><div class="ttdeci">uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00796">Usb.cpp:796</a></div></div>
<div class="ttc" id="message_8h_html_a38aabfb47a8bf743b0532e356c39faaf"><div class="ttname"><a href="message_8h.html#a38aabfb47a8bf743b0532e356c39faaf">NotifyFailGetConfDescr</a></div><div class="ttdeci">#define NotifyFailGetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00052">message.h:52</a></div></div>
<div class="ttc" id="struct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00032">address.h:32</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_ac33a32ea1e6c88a3041b8fd579bb439b"><div class="ttname"><a href="cdcprolific_8h.html#ac33a32ea1e6c88a3041b8fd579bb439b">PL_VID</a></div><div class="ttdeci">#define PL_VID</div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00022">cdcprolific.h:22</a></div></div>
<div class="ttc" id="cdcprolific_8h_html"><div class="ttname"><a href="cdcprolific_8h.html">cdcprolific.h</a></div></div>
<div class="ttc" id="class_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="class_a_c_m_html_abaa06a619a519f4cb39cc8482af6f111"><div class="ttname"><a href="class_a_c_m.html#abaa06a619a519f4cb39cc8482af6f111">ACM::bAddress</a></div><div class="ttdeci">uint8_t bAddress</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00146">cdcacm.h:146</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00069">UsbCore.h:69</a></div></div>
<div class="ttc" id="_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00066">UsbCore.h:66</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00129">cdcacm.h:129</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00128">cdcacm.h:128</a></div></div>
<div class="ttc" id="_usb_core_8h_html_ae9e139d0fd29bb0b3e7afad2f76cd589"><div class="ttname"><a href="_usb_core_8h.html#ae9e139d0fd29bb0b3e7afad2f76cd589">USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</a></div><div class="ttdeci">#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00061">UsbCore.h:61</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00249">cdcacm.cpp:249</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00148">cdcacm.h:148</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_adaec05748124a104c3d49008433719ba"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#adaec05748124a104c3d49008433719ba">USB_DEVICE_DESCRIPTOR::idProduct</a></div><div class="ttdeci">uint16_t idProduct</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00107">usb_ch9.h:107</a></div></div>
<div class="ttc" id="class_a_c_m_html_a768c0fd4ef7f5c52de9e5e7431685279"><div class="ttname"><a href="class_a_c_m.html#a768c0fd4ef7f5c52de9e5e7431685279">ACM::Release</a></div><div class="ttdeci">virtual uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8cpp_source.html#l00251">cdcacm.cpp:251</a></div></div>
<div class="ttc" id="class_a_c_m_html_af1a17c2d77625599da12b26cb0c90d39"><div class="ttname"><a href="class_a_c_m.html#af1a17c2d77625599da12b26cb0c90d39">ACM::bConfNum</a></div><div class="ttdeci">uint8_t bConfNum</div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00147">cdcacm.h:147</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html_ab1b8db3992e0dceb2ba86f3bab1e5bca"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html#ab1b8db3992e0dceb2ba86f3bab1e5bca">USB_DEVICE_DESCRIPTOR::bNumConfigurations</a></div><div class="ttdeci">uint8_t bNumConfigurations</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00112">usb_ch9.h:112</a></div></div>
<div class="ttc" id="_usb_core_8h_html_a15370eb665cdded5514e69ca58d9f39d"><div class="ttname"><a href="_usb_core_8h.html#a15370eb665cdded5514e69ca58d9f39d">USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00064">UsbCore.h:64</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html_a899353c3cbf83d7f874d11e5d9db4722"><div class="ttname"><a href="class_c_d_c_async_oper.html#a899353c3cbf83d7f874d11e5d9db4722">CDCAsyncOper::OnInit</a></div><div class="ttdeci">virtual uint8_t OnInit(ACM *pacm)=0</div></div>
<div class="ttc" id="struct_ep_info_html_aa2ca775b63736df4008e88da7dd4dddb"><div class="ttname"><a href="struct_ep_info.html#aa2ca775b63736df4008e88da7dd4dddb">EpInfo::maxPktSize</a></div><div class="ttdeci">uint8_t maxPktSize</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00168">UsbCore.h:168</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00139">cdcacm.h:139</a></div></div>
<div class="ttc" id="class_u_s_b_html_a66ab8f5eda239e761d5a48741ea1f9d4"><div class="ttname"><a href="class_u_s_b.html#a66ab8f5eda239e761d5a48741ea1f9d4">USB::GetAddressPool</a></div><div class="ttdeci">AddressPool &amp; GetAddressPool()</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00192">UsbCore.h:192</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00138">cdcacm.h:138</a></div></div>
<div class="ttc" id="message_8h_html_a03e4088aafca36fd7a4be69e3a22b601"><div class="ttname"><a href="message_8h.html#a03e4088aafca36fd7a4be69e3a22b601">NotifyFailSetConfDescr</a></div><div class="ttdeci">#define NotifyFailSetConfDescr(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00053">message.h:53</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00060">macros.h:60</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00759">Usb.cpp:759</a></div></div>
<div class="ttc" id="macros_8h_html_afc6fe7f947af35317a49a4dcfc8189fd"><div class="ttname"><a href="macros_8h.html#afc6fe7f947af35317a49a4dcfc8189fd">USBTRACE</a></div><div class="ttdeci">#define USBTRACE(s)</div><div class="ttdef"><b>Definition:</b> <a href="macros_8h_source.html#l00065">macros.h:65</a></div></div>
<div class="ttc" id="class_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE) </div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00761">Usb.cpp:761</a></div></div>
<div class="ttc" id="message_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00051">message.h:51</a></div></div>
<div class="ttc" id="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00098">usb_ch9.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
@ -352,7 +356,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcprolific.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -1098,15 +1098,15 @@ Enumerations</h2></td></tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba85a29accfd1f300da85475fe594131ef"></a>kXOnSent</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba85a29accfd1f300da85475fe594131ef"></a>kXOnSent</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fbacd69a72b64873b169216781514aab2d8"></a>kXOffSent</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fbacd69a72b64873b169216781514aab2d8"></a>kXOffSent</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fbafa4e17811895e3cfdc0fd24f1ebc80fb"></a>kXO_Idle</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fbafa4e17811895e3cfdc0fd24f1ebc80fb"></a>kXO_Idle</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba3a3441d7b96b577a695864955081644d"></a>kXOffNeeded</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba3a3441d7b96b577a695864955081644d"></a>kXOffNeeded</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba692a434f5e6e0dc6487eb855a2d45ff0"></a>kXOnNeeded</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="add931a54ea58b7022eab1911dfd744fba692a434f5e6e0dc6487eb855a2d45ff0"></a>kXOnNeeded</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
@ -1124,15 +1124,15 @@ Enumerations</h2></td></tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe"></a>unknown</em>&nbsp;</td><td class="fielddoc">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a5b9f6d065e6e98483b3d3ed01f4f6cbe"></a>unknown</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627af55eb000231282fd0e3556a1c4e1dab8"></a>type_1</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627af55eb000231282fd0e3556a1c4e1dab8"></a>type_1</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627ae3ab850ab73c2f8a25d1fcd8a3336ada"></a>rev_X</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627ae3ab850ab73c2f8a25d1fcd8a3336ada"></a>rev_X</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a6035ccdf4905b89a274404ba50766fd7"></a>rev_HX</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a6035ccdf4905b89a274404ba50766fd7"></a>rev_HX</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a470a1f7e2c7dc1770a57096718f625d4"></a>rev_H</em>&nbsp;</td><td class="fielddoc">
<tr><td class="fieldname"><em><a class="anchor" id="a6003f43ffe2391c0c31ea48f6b772627a470a1f7e2c7dc1770a57096718f625d4"></a>rev_H</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
@ -1145,7 +1145,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.5
</a> 1.8.6
</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.5"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>USB Host Shield 2.0: cdcprolific.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.5 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@ -236,17 +236,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="cdcprolific_8h_html_add931a54ea58b7022eab1911dfd744fba692a434f5e6e0dc6487eb855a2d45ff0"><div class="ttname"><a href="cdcprolific_8h.html#add931a54ea58b7022eab1911dfd744fba692a434f5e6e0dc6487eb855a2d45ff0">kXOnNeeded</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00065">cdcprolific.h:65</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_a6003f43ffe2391c0c31ea48f6b772627"><div class="ttname"><a href="cdcprolific_8h.html#a6003f43ffe2391c0c31ea48f6b772627">pl2303_type</a></div><div class="ttdeci">pl2303_type</div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00107">cdcprolific.h:107</a></div></div>
<div class="ttc" id="cdcacm_8h_html"><div class="ttname"><a href="cdcacm_8h.html">cdcacm.h</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00129">cdcacm.h:129</a></div></div>
<div class="ttc" id="class_c_d_c_async_oper_html"><div class="ttname"><a href="class_c_d_c_async_oper.html">CDCAsyncOper</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00128">cdcacm.h:128</a></div></div>
<div class="ttc" id="class_p_l2303_html"><div class="ttname"><a href="class_p_l2303.html">PL2303</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00118">cdcprolific.h:118</a></div></div>
<div class="ttc" id="cdcprolific_8h_html_add931a54ea58b7022eab1911dfd744fbafa4e17811895e3cfdc0fd24f1ebc80fb"><div class="ttname"><a href="cdcprolific_8h.html#add931a54ea58b7022eab1911dfd744fbafa4e17811895e3cfdc0fd24f1ebc80fb">kXO_Idle</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcprolific_8h_source.html#l00063">cdcprolific.h:63</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00152">UsbCore.h:152</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00139">cdcacm.h:139</a></div></div>
<div class="ttc" id="class_u_s_b_html"><div class="ttname"><a href="class_u_s_b.html">USB</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00176">UsbCore.h:176</a></div></div>
<div class="ttc" id="class_a_c_m_html"><div class="ttname"><a href="class_a_c_m.html">ACM</a></div><div class="ttdef"><b>Definition:</b> <a href="cdcacm_8h_source.html#l00138">cdcacm.h:138</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</a> 1.8.6
</small></address>
</body>
</html>

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