USB_Host_Shield_2.0/_b_t_d_8h_source.html

198 lines
115 KiB
HTML

<!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.11"/>
<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>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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 id="projectalign" 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.11 -->
<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>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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 class="header">
<div class="headertitle">
<div class="title">BTD.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_b_t_d_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) 2012 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 _btd_h_</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define _btd_h_</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="usbhid_8h.html">usbhid.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//PID and VID of the Sony PS3 devices</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514"> 25</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 26</a></span>&#160;<span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 27</a></span>&#160;<span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 28</a></span>&#160;<span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// These dongles do not present themselves correctly, so we have to check for them manually</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6a28bb0589fbe2da75b238d7568d894d"> 31</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_VID 0x0A5C</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aed4a7c4ebf618412176ef19023454fad"> 32</a></span>&#160;<span class="preprocessor">#define IOGEAR_GBU521_PID 0x21E8</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a576e49b56b3cfb9d70b22bac8fe6796f"> 33</a></span>&#160;<span class="preprocessor">#define BELKIN_F8T065BF_VID 0x050D</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad142141f4e7685e31dce306128eaad5f"> 34</a></span>&#160;<span class="preprocessor">#define BELKIN_F8T065BF_PID 0x065A</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 37</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // Max size for ACL data</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 40</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/* Bluetooth HCI states for hci_task() */</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a"> 43</a></span>&#160;<span class="preprocessor">#define HCI_INIT_STATE 0</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 44</a></span>&#160;<span class="preprocessor">#define HCI_RESET_STATE 1</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa4e852587db5ad51c6c5cfb8e9d4f002"> 45</a></span>&#160;<span class="preprocessor">#define HCI_CLASS_STATE 2</span></div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 46</a></span>&#160;<span class="preprocessor">#define HCI_BDADDR_STATE 3</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 47</a></span>&#160;<span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 4</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 48</a></span>&#160;<span class="preprocessor">#define HCI_SET_NAME_STATE 5</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2c060a7be42c5c4c57990cacec0b45f5"> 49</a></span>&#160;<span class="preprocessor">#define HCI_CHECK_DEVICE_SERVICE 6</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"><a class="line" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 51</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="l00052"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a19b8f48838cdb9ca7db043878f1c11fa"> 52</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_DEVICE_STATE 8</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7fc323aab10c0fb1339e1c660fdd15d"> 53</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_DEVICE_STATE 9</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"><a class="line" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf"> 55</a></span>&#160;<span class="preprocessor">#define HCI_SCANNING_STATE 10</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 56</a></span>&#160;<span class="preprocessor">#define HCI_CONNECT_IN_STATE 11</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 57</a></span>&#160;<span class="preprocessor">#define HCI_REMOTE_NAME_STATE 12</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 58</a></span>&#160;<span class="preprocessor">#define HCI_CONNECTED_STATE 13</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 59</a></span>&#160;<span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 14</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 60</a></span>&#160;<span class="preprocessor">#define HCI_DONE_STATE 15</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 61</a></span>&#160;<span class="preprocessor">#define HCI_DISCONNECT_STATE 16</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">/* HCI event flags*/</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 64</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE (1UL &lt;&lt; 0)</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a472a2cb241a6e13fa8f62d19b6c418bd"> 65</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_COMPLETE (1UL &lt;&lt; 1)</span></div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a094e0fa9b22cade79fe64a907aad5f2a"> 66</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DISCONNECT_COMPLETE (1UL &lt;&lt; 2)</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 67</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE (1UL &lt;&lt; 3)</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 68</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST (1UL &lt;&lt; 4)</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 69</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_BDADDR (1UL &lt;&lt; 5)</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 70</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_READ_VERSION (1UL &lt;&lt; 6)</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5ac3c55b54eff968d2327185a7e644ba"> 71</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_DEVICE_FOUND (1UL &lt;&lt; 7)</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 72</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT (1UL &lt;&lt; 8)</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">/* Macros for HCI event flag tests */</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a57c7f989e9b561a6301a0d6f2268bfd5"> 75</a></span>&#160;<span class="preprocessor">#define hci_check_flag(flag) (hci_event_flag &amp; (flag))</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ada46cc57bb9134769989b1b18bdac525"> 76</a></span>&#160;<span class="preprocessor">#define hci_set_flag(flag) (hci_event_flag |= (flag))</span></div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a700e625eeda4ce1b35112721acbdfd19"> 77</a></span>&#160;<span class="preprocessor">#define hci_clear_flag(flag) (hci_event_flag &amp;= ~(flag))</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;<span class="comment">/* HCI Events managed */</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 80</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 81</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 82</a></span>&#160;<span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 83</a></span>&#160;<span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 84</a></span>&#160;<span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 85</a></span>&#160;<span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 86</a></span>&#160;<span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 87</a></span>&#160;<span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 88</a></span>&#160;<span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 89</a></span>&#160;<span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 90</a></span>&#160;<span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 91</a></span>&#160;<span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 92</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 93</a></span>&#160;<span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 94</a></span>&#160;<span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 95</a></span>&#160;<span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 96</a></span>&#160;<span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 97</a></span>&#160;<span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 98</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 99</a></span>&#160;<span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 100</a></span>&#160;<span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 101</a></span>&#160;<span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></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">/* Bluetooth states for the different Bluetooth drivers */</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a15cc1db556ad9a4ec6144ca8a42f8919"> 104</a></span>&#160;<span class="preprocessor">#define L2CAP_WAIT 0</span></div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ae4da52ca67e1f8b977199b24e8f3a400"> 105</a></span>&#160;<span class="preprocessor">#define L2CAP_DONE 1</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">/* Used for HID Control channel */</span></div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a68bcdd68c269cd7970d5271a00bbe5fe"> 108</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONNECT_REQUEST 2</span></div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aaaf733ee2c84bd8df4d24f2ae1f3b378"> 109</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_CONFIG_REQUEST 3</span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#abac08b5b24a1cd2b12517cd9aa6c616b"> 110</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_SUCCESS 4</span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9b5140e7ca5941e5535c575255ffc1cc"> 111</a></span>&#160;<span class="preprocessor">#define L2CAP_CONTROL_DISCONNECT 5</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">/* Used for HID Interrupt channel */</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac7aa7fd7a8a34a6c9e420e3cb114737b"> 114</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_SETUP 6</span></div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af0b913a7e9e54b1f6ab95d82bd36f954"> 115</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONNECT_REQUEST 7</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a73e3a81d9a8850075fd10933acc5a035"> 116</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_CONFIG_REQUEST 8</span></div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab569b2085ad29f41d1da9c0ed352bd65"> 117</a></span>&#160;<span class="preprocessor">#define L2CAP_INTERRUPT_DISCONNECT 9</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;<span class="comment">/* Used for SDP channel */</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a72444116eaac116983a3dec35b1944f0"> 120</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_WAIT 10</span></div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1b8e3e654e4f55e27ca5054aef956edc"> 121</a></span>&#160;<span class="preprocessor">#define L2CAP_SDP_SUCCESS 11</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="comment">/* Used for RFCOMM channel */</span></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0b7cbe1aa26664847a48bd4578bc50bd"> 124</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_WAIT 12</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75321d181cfa3c485bcd96918c1b353e"> 125</a></span>&#160;<span class="preprocessor">#define L2CAP_RFCOMM_SUCCESS 13</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"><a class="line" href="_b_t_d_8h.html#adf2585ad5d49cf2df2595d860ad6b258"> 127</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="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">/* Bluetooth states used by some drivers */</span></div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6b3038e881952934873fd533de842670"> 130</a></span>&#160;<span class="preprocessor">#define TURN_ON_LED 17</span></div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aa25fc1cab2e76831c39705932cf1d828"> 131</a></span>&#160;<span class="preprocessor">#define PS3_ENABLE_SIXAXIS 18</span></div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a11b0db0910ac44ec8b090647d6a71088"> 132</a></span>&#160;<span class="preprocessor">#define WII_CHECK_MOTION_PLUS_STATE 19</span></div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a990925c3f1ef4962db33ab74d79976e8"> 133</a></span>&#160;<span class="preprocessor">#define WII_CHECK_EXTENSION_STATE 20</span></div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acdcb0586ca7e9d357279bf4fba8b5257"> 134</a></span>&#160;<span class="preprocessor">#define WII_INIT_MOTION_PLUS_STATE 21</span></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">/* L2CAP event flags for HID Control channel */</span></div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a969a1ee84797f3ee5006c41f67373f96"> 137</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_CONTROL_REQUEST (1UL &lt;&lt; 0)</span></div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0c444d5d06ec604820d426556c2f38d7"> 138</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_CONTROL_SUCCESS (1UL &lt;&lt; 1)</span></div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2e5a9c283f0912833f3e0418d3feadd7"> 139</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONTROL_CONNECTED (1UL &lt;&lt; 2)</span></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a27057737ae0b2246442511c01eeed192"> 140</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_CONTROL_RESPONSE (1UL &lt;&lt; 3)</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="comment">/* L2CAP event flags for HID Interrupt channel */</span></div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a015f3b25bd7a2908c84b973dec453f45"> 143</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_INTERRUPT_REQUEST (1UL &lt;&lt; 4)</span></div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2b3cdcd3124251a40ce825da0d8dcb6f"> 144</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_INTERRUPT_SUCCESS (1UL &lt;&lt; 5)</span></div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aad823543553cc7500ac49d7479eb858f"> 145</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_INTERRUPT_CONNECTED (1UL &lt;&lt; 6)</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#acc096a05301f3cbdece4ad372cc149c3"> 146</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_INTERRUPT_RESPONSE (1UL &lt;&lt; 7)</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">/* L2CAP event flags for SDP channel */</span></div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a0d649771ff995585c2bff030b7c1a2d3"> 149</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_SDP_REQUEST (1UL &lt;&lt; 8)</span></div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a75ef214ce8a03e8d62a1b24554bc1a05"> 150</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_SDP_SUCCESS (1UL &lt;&lt; 9)</span></div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aac25fa1de5df70a97a6ccc6267d65fea"> 151</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_SDP_REQUEST (1UL &lt;&lt; 10)</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">/* L2CAP event flags for RFCOMM channel */</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a61b15e54b1c5f9a28c996ae8e04ca3c0"> 154</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONNECTION_RFCOMM_REQUEST (1UL &lt;&lt; 11)</span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8af4ce4d4c42d85f0d84a514354fc570"> 155</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_CONFIG_RFCOMM_SUCCESS (1UL &lt;&lt; 12)</span></div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9da70c702c0b792d99f8e39713ac0ee7"> 156</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RFCOMM_REQUEST (1UL &lt;&lt; 13)</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"><a class="line" href="_b_t_d_8h.html#ae16d9fcc820433592ba171c8b2a9e25d"> 158</a></span>&#160;<span class="preprocessor">#define L2CAP_FLAG_DISCONNECT_RESPONSE (1UL &lt;&lt; 14)</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">/* Macros for L2CAP event flag tests */</span></div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5d120280be8d502fa0b74d46aa32d3a8"> 161</a></span>&#160;<span class="preprocessor">#define l2cap_check_flag(flag) (l2cap_event_flag &amp; (flag))</span></div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a5f035450f226204f021e69ad1faa2e3a"> 162</a></span>&#160;<span class="preprocessor">#define l2cap_set_flag(flag) (l2cap_event_flag |= (flag))</span></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ab7cbb63a22e09b8d1c63a754c4280f7f"> 163</a></span>&#160;<span class="preprocessor">#define l2cap_clear_flag(flag) (l2cap_event_flag &amp;= ~(flag))</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 166</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 167</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 168</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 169</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 170</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 171</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 172</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 173</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 174</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</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="comment">// Used For Connection Response - Remember to Include High Byte</span></div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 177</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 178</a></span>&#160;<span class="preprocessor">#define SUCCESSFUL 0x00</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">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 181</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 182</a></span>&#160;<span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 183</a></span>&#160;<span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 184</a></span>&#160;<span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</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">// Used to determine if it is a Bluetooth dongle</span></div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 187</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 188</a></span>&#160;<span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 190</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19"> 191</a></span>&#160;<span class="preprocessor">#define BTD_NUM_SERVICES 4 // Max number of Bluetooth services - if you need more than 4 simply increase this number</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="_b_t_d_8h.html#a8f0b5b0dedaf5c25c4887f03ebfdd425"> 193</a></span>&#160;<span class="preprocessor">#define PAIR 1</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"> 195</span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_b_t_d.html"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; 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="l00225"></a><span class="lineno"> 225</span>&#160; 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="l00230"></a><span class="lineno"> 230</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 241</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="l00242"></a><span class="lineno"> 242</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="l00243"></a><span class="lineno"> 243</span>&#160; };</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 249</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="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> bPollEnable;</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#af2cd7fd7592348f26c78e49b40e83935"> 258</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af2cd7fd7592348f26c78e49b40e83935">DEVCLASSOK</a>(uint8_t klass) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</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="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="l00269"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102"> 269</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102">VIDPIDOK</a>(uint16_t vid, uint16_t pid) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</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>) || (vid == <a class="code" href="_b_t_d_8h.html#a576e49b56b3cfb9d70b22bac8fe6796f">BELKIN_F8T065BF_VID</a> &amp;&amp; pid == <a class="code" href="_b_t_d_8h.html#ad142141f4e7685e31dce306128eaad5f">BELKIN_F8T065BF_PID</a>))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</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="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; };</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#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="l00293"></a><span class="lineno"> 293</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="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684"> 300</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684">registerBluetoothService</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; <a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>; i++) {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(!btService[i]) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; btService[i] = pService;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</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; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// Error registering BluetoothService</span></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="l00316"></a><span class="lineno"> 316</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="l00318"></a><span class="lineno"> 318</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="l00320"></a><span class="lineno"> 320</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="l00322"></a><span class="lineno"> 322</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="l00327"></a><span class="lineno"> 327</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="l00329"></a><span class="lineno"> 329</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="l00331"></a><span class="lineno"> 331</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="l00333"></a><span class="lineno"> 333</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="l00335"></a><span class="lineno"> 335</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="l00340"></a><span class="lineno"> 340</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="l00346"></a><span class="lineno"> 346</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="l00348"></a><span class="lineno"> 348</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="l00353"></a><span class="lineno"> 353</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="l00355"></a><span class="lineno"> 355</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="l00357"></a><span class="lineno"> 357</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="l00359"></a><span class="lineno"> 359</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="l00361"></a><span class="lineno"> 361</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="l00366"></a><span class="lineno"> 366</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="l00368"></a><span class="lineno"> 368</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="l00380"></a><span class="lineno"> 380</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="l00388"></a><span class="lineno"> 388</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="l00397"></a><span class="lineno"> 397</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="l00404"></a><span class="lineno"> 404</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="l00411"></a><span class="lineno"> 411</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="l00419"></a><span class="lineno"> 419</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="l00427"></a><span class="lineno"> 427</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="l00434"></a><span class="lineno"> 434</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="l00438"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a93a522edb2974185c7567b8f83860424"> 438</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a93a522edb2974185c7567b8f83860424">waitingForConnection</a>;</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 440</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="l00442"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 442</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="l00444"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 444</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="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 447</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="l00449"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 449</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="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 452</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="l00454"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 454</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 456</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="l00458"></a><span class="lineno"><a class="line" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa"> 458</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">remote_name</a>[30];</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 464</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a6b66a27c0fd359e3129f53451352b55c"> 467</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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</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="l00470"></a><span class="lineno"><a class="line" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 470</a></span>&#160; };</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</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="l00474"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 474</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="l00476"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 476</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="l00478"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 478</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="l00480"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 480</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="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0b59db80825ffd5974e0d2c4a046b328"> 483</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="l00484"></a><span class="lineno"> 484</span>&#160; waitingForConnection = <span class="keyword">false</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</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="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"><a class="line" href="class_b_t_d.html#af40b8d52df99192880c8a13443b6c6d8"> 487</a></span>&#160; };</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</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="l00491"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a685d6371fb0c950ff6bad4510a8cc85a"> 491</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="l00493"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2aa418d820fb6b877ea079e0436a518e"> 493</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="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd"> 499</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a2a9ecb996243e070e70972370e45e4fd">readPollInterval</a>() {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> pollInterval;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 501</a></span>&#160; };</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</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="l00507"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 507</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div><div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 509</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="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 512</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 514</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 516</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 519</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="l00521"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 521</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="l00523"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 523</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="l00525"></a><span class="lineno"><a class="line" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 525</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="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</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="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</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="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a> *btService[<a class="code" href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a>];</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; uint16_t PID, VID; <span class="comment">// PID and VID of device connected</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; uint8_t pollInterval;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordtype">bool</span> pairWiiUsingSync; <span class="comment">// True if pairing was done using the Wii SYNC button.</span></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordtype">bool</span> checkRemoteName; <span class="comment">// Used to check remote device&#39;s name before connecting.</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</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="l00545"></a><span class="lineno"> 545</span>&#160; uint8_t classOfDevice[3]; <span class="comment">// Class of device of last device</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; uint8_t hci_state; <span class="comment">// Current state of Bluetooth HCI connection</span></div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; uint16_t hci_counter; <span class="comment">// Counter used for Bluetooth HCI reset loops</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</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="l00551"></a><span class="lineno"> 551</span>&#160; uint16_t hci_event_flag; <span class="comment">// HCI flags of received Bluetooth events</span></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; uint8_t inquiry_counter;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</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="l00555"></a><span class="lineno"> 555</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="l00556"></a><span class="lineno"> 556</span>&#160; uint8_t l2capoutbuf[14]; <span class="comment">// General purpose buffer for L2CAP out data</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="comment">/* State machines */</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</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="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;};</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html"> 569</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573"> 571</a></span>&#160; <a class="code" href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573">BluetoothService</a>(<a class="code" href="class_b_t_d.html">BTD</a> *p) : pBtd(p) {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">if</span>(pBtd)</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; pBtd-&gt;registerBluetoothService(<span class="keyword">this</span>); <span class="comment">// Register it as a Bluetooth service</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; };</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ACLData(uint8_t* ACLData) = 0;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Run() = 0;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Reset() = 0;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>() = 0;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f"> 591</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f">attachOnInit</a>(<span class="keywordtype">void</span> (*funcOnInit)(<span class="keywordtype">void</span>)) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; pFuncOnInit = funcOnInit; <span class="comment">// TODO: This really belong in a class of it&#39;s own as it is repeated several times</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; };</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> onInit() = 0;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd"> 604</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">checkHciHandle</a>(uint8_t *buf, uint16_t handle) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">return</span> (buf[0] == (handle &amp; 0xFF)) &amp;&amp; (buf[1] == ((handle &gt;&gt; 8) | 0x20));</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a321393d44ce59213fa1c7498c247d5ff"> 609</a></span>&#160; void (*pFuncOnInit)(void);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a"> 612</a></span>&#160; <a class="code" href="class_b_t_d.html">BTD</a> *<a class="code" href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">pBtd</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437"> 615</a></span>&#160; uint16_t <a class="code" href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">hci_handle</a>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2"> 618</a></span>&#160; uint32_t <a class="code" href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">l2cap_event_flag</a>;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262"> 621</a></span>&#160; uint8_t <a class="code" href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">identifier</a>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;};</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<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#l00525">BTD.h:525</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#l00474">BTD.h:474</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#l01071">BTD.cpp:1071</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#l00514">BTD.h:514</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#l00447">BTD.h:447</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#l00953">BTD.cpp:953</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#l01260">BTD.cpp:1260</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#l01247">BTD.cpp:1247</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#l00442">BTD.h:442</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#l00201">BTD.h:201</a></div></div>
<div class="ttc" id="class_b_t_d_html_ad00d299e64c1a939e4a781ef39f75684"><div class="ttname"><a href="class_b_t_d.html#ad00d299e64c1a939e4a781ef39f75684">BTD::registerBluetoothService</a></div><div class="ttdeci">int8_t registerBluetoothService(BluetoothService *pService)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00300">BTD.h:300</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#l01313">BTD.cpp:1313</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#l00444">BTD.h:444</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#l00464">BTD.h:464</a></div></div>
<div class="ttc" id="class_b_t_d_html_a93a522edb2974185c7567b8f83860424"><div class="ttname"><a href="class_b_t_d.html#a93a522edb2974185c7567b8f83860424">BTD::waitingForConnection</a></div><div class="ttdeci">bool waitingForConnection</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_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#l01049">BTD.cpp:1049</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#l00521">BTD.h:521</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#l00028">BTD.h:28</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#l00148">usb_ch9.h:148</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#l00476">BTD.h:476</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_ad643db609c7e2e3fae8904dbc7991262"><div class="ttname"><a href="class_bluetooth_service.html#ad643db609c7e2e3fae8904dbc7991262">BluetoothService::identifier</a></div><div class="ttdeci">uint8_t identifier</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00621">BTD.h:621</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#l00975">BTD.cpp:975</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_ad142141f4e7685e31dce306128eaad5f"><div class="ttname"><a href="_b_t_d_8h.html#ad142141f4e7685e31dce306128eaad5f">BELKIN_F8T065BF_PID</a></div><div class="ttdeci">#define BELKIN_F8T065BF_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00034">BTD.h:34</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">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#l00327">BTD.cpp:327</a></div></div>
<div class="ttc" id="class_b_t_d_html_ae0808ebf7578fc022b8f05c8779d3102"><div class="ttname"><a href="class_b_t_d.html#ae0808ebf7578fc022b8f05c8779d3102">BTD::VIDPIDOK</a></div><div class="ttdeci">virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00269">BTD.h:269</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#l00241">BTD.h:241</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_afeaafddda417fd2f053dbd476332ea19"><div class="ttname"><a href="_b_t_d_8h.html#afeaafddda417fd2f053dbd476332ea19">BTD_NUM_SERVICES</a></div><div class="ttdeci">#define BTD_NUM_SERVICES</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00191">BTD.h:191</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#l00449">BTD.h:449</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#l00478">BTD.h:478</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#l01018">BTD.cpp:1018</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#l00134">UsbCore.h:134</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_a576e49b56b3cfb9d70b22bac8fe6796f"><div class="ttname"><a href="_b_t_d_8h.html#a576e49b56b3cfb9d70b22bac8fe6796f">BELKIN_F8T065BF_VID</a></div><div class="ttdeci">#define BELKIN_F8T065BF_VID</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="_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#l00025">BTD.h:25</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_aa0fd5483f227e29de23c20ee31c940aa"><div class="ttname"><a href="class_b_t_d.html#aa0fd5483f227e29de23c20ee31c940aa">BTD::remote_name</a></div><div class="ttdeci">char remote_name[30]</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00458">BTD.h:458</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#l00499">BTD.h:499</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#l00523">BTD.h:523</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#l01037">BTD.cpp:1037</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#l00962">BTD.cpp:962</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">uint8_t Release()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00376">BTD.cpp:376</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#l01326">BTD.cpp:1326</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#l00084">UsbCore.h:84</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#l00487">BTD.h:487</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#l00507">BTD.h:507</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#l00491">BTD.h:491</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#l00493">BTD.h:493</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#l00516">BTD.h:516</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#l00357">BTD.cpp:357</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#l00032">BTD.h:32</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#l00470">BTD.h:470</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">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#l00480">BTD.h:480</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#l00454">BTD.h:454</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">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#l00134">BTD.cpp:134</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#l00039">address.h:39</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#l00483">BTD.h:483</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#l01171">BTD.cpp:1171</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#l00569">BTD.h:569</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#l00984">BTD.cpp:984</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#l01063">BTD.cpp:1063</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#l00452">BTD.h:452</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a488e219cf0a90d39e643615b1f12e91f"><div class="ttname"><a href="class_bluetooth_service.html#a488e219cf0a90d39e643615b1f12e91f">BluetoothService::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00591">BTD.h:591</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">uint8_t Poll()</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8cpp_source.html#l00382">BTD.cpp:382</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#l00519">BTD.h:519</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#l00030">confdescparser.h:30</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_aa67faf901f78a55a202945a20f6d778a"><div class="ttname"><a href="class_bluetooth_service.html#aa67faf901f78a55a202945a20f6d778a">BluetoothService::pBtd</a></div><div class="ttdeci">BTD * pBtd</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00612">BTD.h:612</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#l00037">BTD.h:37</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_8cpp_source.html#l00394">BTD.cpp:394</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#l00456">BTD.h:456</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#l00440">BTD.h:440</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#l00509">BTD.h:509</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#l00031">BTD.h:31</a></div></div>
<div class="ttc" id="_b_t_d_8h_html_a0ae276efa5e73a4da658c714e70402c0"><div class="ttname"><a href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0">PS3_PID</a></div><div class="ttdeci">#define PS3_PID</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00026">BTD.h:26</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#l00190">BTD.h:190</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#l00027">BTD.h:27</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#l01339">BTD.cpp:1339</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a410c7df1e49328de23a89921c89f9573"><div class="ttname"><a href="class_bluetooth_service.html#a410c7df1e49328de23a89921c89f9573">BluetoothService::BluetoothService</a></div><div class="ttdeci">BluetoothService(BTD *p)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00571">BTD.h:571</a></div></div>
<div class="ttc" id="usbhid_8h_html"><div class="ttname"><a href="usbhid_8h.html">usbhid.h</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#l01183">BTD.cpp:1183</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a67b1db67c05d0bbdcd9c992135455437"><div class="ttname"><a href="class_bluetooth_service.html#a67b1db67c05d0bbdcd9c992135455437">BluetoothService::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#l00615">BTD.h:615</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#l01133">BTD.cpp:1133</a></div></div>
<div class="ttc" id="class_b_t_d_html_af2cd7fd7592348f26c78e49b40e83935"><div class="ttname"><a href="class_b_t_d.html#af2cd7fd7592348f26c78e49b40e83935">BTD::DEVCLASSOK</a></div><div class="ttdeci">virtual bool DEVCLASSOK(uint8_t klass)</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_bluetooth_service_html_a78a1a893ec9c2db32e42bc2271c4a4f2"><div class="ttname"><a href="class_bluetooth_service.html#a78a1a893ec9c2db32e42bc2271c4a4f2">BluetoothService::l2cap_event_flag</a></div><div class="ttdeci">uint32_t l2cap_event_flag</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00618">BTD.h:618</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#l00049">BTD.h:49</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#l00210">UsbCore.h:210</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#l00512">BTD.h:512</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#l01147">BTD.cpp:1147</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#l00467">BTD.h:467</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#l00249">BTD.h:249</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#l01219">BTD.cpp:1219</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#l01294">BTD.cpp:1294</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#l01277">BTD.cpp:1277</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#l01097">BTD.cpp:1097</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#l00501">BTD.h:501</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#l01161">BTD.cpp:1161</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#l00993">BTD.cpp:993</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#l01002">BTD.cpp:1002</a></div></div>
<div class="ttc" id="class_bluetooth_service_html_a2a3674a4bb5d409840995eabe07049bd"><div class="ttname"><a href="class_bluetooth_service.html#a2a3674a4bb5d409840995eabe07049bd">BluetoothService::checkHciHandle</a></div><div class="ttdeci">bool checkHciHandle(uint8_t *buf, uint16_t handle)</div><div class="ttdef"><b>Definition:</b> <a href="_b_t_d_8h_source.html#l00604">BTD.h:604</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#l00948">BTD.cpp:948</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.11
</small></address>
</body>
</html>